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 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
在Django中创建第一个静态视图
Jul 15 Python
Python自动化部署工具Fabric的简单上手指南
Apr 19 Python
python中PIL安装简单教程
Apr 21 Python
python实践项目之监控当前联网状态详情
May 23 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
学习Django知识点分享
Sep 11 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
使用Keras建立模型并训练等一系列操作方式
Jul 02 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
Python3 搭建Qt5 环境的方法示例
Jul 16 Python
如何利用python创作字符画
Jun 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
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
IE与FireFox中的childNodes区别
2011/10/20 Javascript
当json键为数字时的取值方法解析
2013/11/15 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
React通过父组件传递类名给子组件的实现方法
2017/11/13 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
微信小程序导航栏滑动定位功能示例(实现CSS3的positionsticky效果)
2019/01/24 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
IDEA安装vue插件图文详解
2019/09/26 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python 文件和输入输出小结
2013/10/09 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python基础之文件读取的讲解
2019/02/16 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
优秀大学生推荐信范文
2013/11/28 职场文书
装饰活动策划方案
2014/02/11 职场文书
高三高考决心书
2014/03/11 职场文书
庆六一宣传标语
2014/10/08 职场文书
学生检讨书范文
2015/01/27 职场文书
教师岗位说明书
2015/09/30 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android