python中HTMLParser模块知识点总结


Posted in Python onJanuary 25, 2021

本章内容,我们主要来讲一下Python内置的HTML解析库HTMLParser模块,基本上也是应用于页面抓取上,假设,我们需要去收集页面上已存在的静态链接,但是页面肯定代码量都非常大,并且页面也很多,这样看来,会比较麻烦,工作量也非常大,这个时候,我们就可以用到htmlparser模块,一起来了解具体使用内容。

安装:

npm install htmlparser

htmlparser提供构造函数:

function Parser(handler) {
  this._handler = handler;
}

HTMLParser解析HTML:

from html.parser import HTMLParser
from html.entities import name2codepoint
class MyHTMLParser(HTMLParser):
  def handle_starttag(self, tag, attrs):
    print('<%s>' % tag)
  def handle_endtag(self, tag):
    print('</%s>' % tag)
  def handle_startendtag(self, tag, attrs):
    print('<%s/>' % tag)
  def handle_data(self, data):
    print(data)
  def handle_comment(self, data):
    print('<!--', data, '-->')
  def handle_entityref(self, name):
    print('&%s;' % name)
  def handle_charref(self, name):
    print('&#%s;' % name)
parser = MyHTMLParser()
parser.feed('''<html>
<head></head>
<body>
<!-- test html parser -->
  <p>Some <a href=\"#\">html</a> HTML tutorial...<br>END</p>
</body></html>''')

HTML本质上是XML的子集,但是HTML的语法没有XML那么严格,大家也可以尝试利用HTMLParser解析HTML。

知识点扩展:

常用方法介绍

l feed(data):主要用于接受带html标签的str,当调用这个方法时并提供相应的data时,整个实例(instance)开始执行,结束执行close()。

l handle_starttag(tag, attrs): 这个方法接收Parse_starttag返回的tag和attrs,并进行处理,处理方式通常由使用者进行覆盖,本身为空。

例如,连接的start tag是<a>,那么对应的参数tag='a'(小写)。attrs是start tag <>中的属性,以元组形式(name, value)返回(所有这些内容都是小写)。

例如,对于<A HREF="http://www.baidu.com“>,那么内部调用形式为:handle_starttag('a',[(‘href','http://www.baidu.com)]).

l handle_endtag(tag):跟上述一样,只是处理的是结束标签,也就是以</开头的标签。

l handle_data(data):处理的是网页的数据,也就是开始标签和结束标签之间的内容。例如:<script>...</script>的省略号内容

l handle_comment(data) ,处理注释,<!-- -->之间的文本

l reset():将实例重置,包括作为参数输入的数据进行清空。

到此这篇关于python中HTMLParser模块知识点总结的文章就介绍到这了,更多相关python中HTMLParser模块是什么内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

到此这篇关于python中HTMLParser模块知识点总结的文章就介绍到这了,更多相关python中HTMLParser模块是什么内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python通过urllib2爬网页上种子下载示例
Feb 24 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
使用Python正则表达式操作文本数据的方法
May 14 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
Python中的self用法详解
Aug 06 Python
Python celery原理及运行流程解析
Jun 13 Python
Python: glob匹配文件的操作
Dec 11 Python
Pandas加速代码之避免使用for循环
May 30 Python
Python Django项目和应用的创建详解
Nov 27 Python
Python利用FlashText算法实现替换字符串
Mar 31 Python
pycharm配置QtDesigner的超详细方法
Jan 25 #Python
Python扫描端口的实现
Jan 25 #Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 #Python
Python实现京东抢秒杀功能
Jan 25 #Python
Python Process创建进程的2种方法详解
Jan 25 #Python
使用python对excel表格处理的一些小功能
Jan 25 #Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 #Python
You might like
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
ThinkPHP php 框架学习笔记
2009/10/30 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
使用JavaScript破解web
2018/09/28 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
微信小程序实现购物车代码实例详解
2019/08/29 Javascript
Python装饰器的执行过程实例分析
2018/06/04 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python Django中间件使用原理及流程分析
2020/06/13 Python
导致python中import错误的原因是什么
2020/07/01 Python
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
怎么处理XML的中文问题
2015/03/26 面试题
经典c++面试题五
2014/12/17 面试题
物理教育专业毕业生推荐信
2013/11/03 职场文书
大学生毕业的自我评价分享
2014/01/02 职场文书
《要下雨了》教学反思
2014/02/17 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
检举信的格式及范文
2014/04/04 职场文书
交通违章检讨书
2014/09/21 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
让世界充满爱观后感
2015/06/10 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL