Python 网页解析HTMLParse的实例详解


Posted in Python onAugust 10, 2017

Python 网页解析HTMLParse的实例详解

使用python将网页抓取下来之后,下一步我们就应该解析网页,提取我们所需要的内容了,在python里提供了一个简单的解析模块HTMLParser类,使用起来也是比较简单的,解析语法没有用到XPath类似的简洁模式,但新手用起来还是比较容易的,看下面的例子:

现在一个模拟的html文件:

<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body>  </html>

需求是,提取出标题的属性值,以及内容:

代码如下:

import html.parser as h 
 
 
 
class MyHTMLParser(h.HTMLParser): 
  a_t=False 
  def handle_starttag(self, tag, attrs): 
    #print("开始一个标签:",tag) 
    print() 
    if str(tag).startswith("title"): 
      print(tag) 
      self.a_t=True 
      for attr in attrs: 
        print("  属性值:",attr) 
 
  def handle_endtag(self, tag): 
    if tag == "title": 
      self.a_t=False 
      #print("结束一个标签:",tag) 
 
  def handle_data(self, data): 
    if self.a_t is True: 
      print("得到的数据: ",data) 
 
 
 
p=MyHTMLParser() 
 
p.feed("<html> <title id='main' mouse='你好'>我是标题</title><body>我是内容</body>  </html>") 
 
p.close()

运行结果如下:

title 
  属性值: ('id', 'main') 
  属性值: ('mouse', '你好') 
得到的数据: 我是标题

主要的技术就是继承了HTMLParser类,然后重写了里面的一些方法,来完成自己的业务,从上面的代码里,发现如果想获取某个标签的内容,还是比较麻烦的,当然这是python里面最简单的html解析方式,还有很多其他组件,scrapy等等,里面支持Xpath路径解析,使用起来非常简洁清爽。

解析代码学会之后,我们就可以将使用urllib包,抓取到的数据交给htmlparser解析,从而提取出我们所需要的内容。

以上就是Python 网页解析HTMLParse的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python 比较两个数组的元素的异同方法
Aug 17 Python
python取代netcat过程分析
Feb 10 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
python3将变量输入的简单实例
Aug 19 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
关于Python中浮点数精度处理的技巧总结
Aug 10 #Python
Python 处理数据的实例详解
Aug 10 #Python
Python 由字符串函数名得到对应的函数(实例讲解)
Aug 10 #Python
关于Python中空格字符串处理的技巧总结
Aug 10 #Python
Python排序算法实例代码
Aug 10 #Python
简单谈谈python中的语句和语法
Aug 10 #Python
Python中如何优雅的合并两个字典(dict)方法示例
Aug 09 #Python
You might like
php 实现301重定向跳转实例代码
2016/07/18 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
2016/12/13 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
使用cropper.js裁剪头像的实例代码
2017/09/29 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
js实现简单的秒表
2020/01/16 Javascript
js实现全选和全不选
2020/07/28 Javascript
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
高中军训感言1000字
2014/03/01 职场文书
美容院店长岗位职责
2014/04/08 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
全陪导游词开场白
2015/05/29 职场文书
2016教师节问候语
2015/11/10 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript
Sleuth+logback 设置traceid 及自定义信息方式
2021/07/26 Java/Android
POST提交数据常见的四种方式
2022/01/18 HTML / CSS
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis