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快速查找算法应用实例
Sep 26 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python 含参构造函数实例详解
May 25 Python
Python简单的制作图片验证码实例
May 31 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
python 获取url中的参数列表实例
Dec 18 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
python如何设置静态变量
Sep 07 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:风雨欲来 路在何方?
2006/10/09 PHP
基于pear auth实现登录验证
2010/02/26 PHP
关于crontab的使用详解
2013/06/24 PHP
php计算程序运行时间的简单例子分享
2014/05/10 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php显示时间常用方法小结
2015/06/05 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
jquery 事件对象属性小结
2010/04/27 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
javascript中json基础知识详解
2017/01/19 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python函数不定长参数使用方法解析
2019/12/14 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
巴西女装购物网站:Eclectic
2018/04/24 全球购物
探亲邀请信范文
2014/01/30 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python