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进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
python写xml文件的操作实例
Oct 05 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
详解Python requests 超时和重试的方法
Dec 18 Python
Python变量类型知识点总结
Feb 18 Python
Python实现FM算法解析
Jun 18 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python实现递归查找某个路径下所有文件中的中文字符
Aug 31 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
Mar 09 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
python实现对doc、txt、xls等文档的读写操作
Apr 02 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个人网站架设连环讲(二)
2006/10/09 PHP
php 高性能书写
2010/12/11 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
php简单操作mysql数据库的类
2015/04/16 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
HTML上传控件取消选择
2013/03/06 Javascript
JS获取地址栏参数的小例子
2013/08/23 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue项目中导入swiper插件的方法
2018/01/30 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
vue简单封装axios插件和接口的统一管理操作示例
2020/02/02 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Pycharm小白级简单使用教程
2020/01/08 Python
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
小学教师国培感言
2014/02/08 职场文书
户外拓展活动方案
2014/02/11 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
销售人员求职信
2014/07/22 职场文书
小学数学国培研修日志
2015/11/13 职场文书
R9700摩机记
2022/04/05 无线电