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 version 2.7 required, which was not found in the registry
Aug 26 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
Python制作刷网页流量工具
Apr 23 Python
python实现AES和RSA加解密的方法
Mar 28 Python
python语言元素知识点详解
May 15 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
python 如何将office文件转换为PDF
Sep 22 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
解决Django transaction进行事务管理踩过的坑
Apr 24 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
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php die()与exit()的区别实例详解
2016/12/03 PHP
JQuery验证工具类搜集整理
2013/01/16 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
JavaScript实现99乘法表及隔行变色实例代码
2016/02/24 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
python定位xpath 节点位置的方法
2019/08/27 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Python grpc超时机制代码示例
2020/09/14 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
十岁生日父母答谢词
2014/01/18 职场文书
图书室标语
2014/06/21 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书