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 Django(图文)
Nov 04 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
在Django的模型中执行原始SQL查询的方法
Jul 21 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
python实现关键词提取的示例讲解
Apr 28 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python重试装饰器的简单实现方法
Jan 31 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
Nov 30 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
python非标准时间的转换
Jul 25 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
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
javascript Math.random()随机数函数
2009/11/04 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
js 如何实现对数据库的增删改查
2012/11/23 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
详解VUE Element-UI多级菜单动态渲染的组件
2019/04/25 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
Python实现telnet服务器的方法
2015/07/10 Python
Python的装饰器使用详解
2017/06/26 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
港湾网络笔试题
2014/04/19 面试题
初中音乐教学反思
2014/01/12 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
拔河比赛新闻稿
2015/07/17 职场文书
python munch库的使用解析
2021/05/25 Python
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏