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简单日志处理类分享
Feb 14 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
Python数据结构与算法(几种排序)小结
Jun 22 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
django 简单实现登录验证给你
Nov 06 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
Django REST Swagger实现指定api参数
Jul 07 Python
简单了解如何封装自己的Python包
Jul 08 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 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魔术引号所带来的安全问题分析
2014/07/15 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
2019/05/16 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Windows下python3.7安装教程
2018/07/31 Python
深入浅析Python 中 is 语法带来的误解
2019/05/07 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
对python 调用类属性的方法详解
2019/07/02 Python
python SocketServer源码深入解读
2019/09/17 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
年度考核自我鉴定
2013/11/09 职场文书
相亲大会策划方案
2014/06/05 职场文书
高等教育学专业自荐书
2014/06/17 职场文书
新手上路标语
2014/06/20 职场文书
停车位租赁协议书
2014/09/24 职场文书
2014年党员整改措施
2014/10/24 职场文书
学校党支部承诺书
2015/04/30 职场文书
人生遥控器观后感
2015/06/11 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL