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获取外网ip地址的方法总结
Jul 02 Python
python安装与使用redis的方法
Apr 19 Python
Sublime开发python程序的示例代码
Jan 24 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
PyQt5每天必学之切换按钮
Aug 20 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
简单了解python的break、continue、pass
Jul 08 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
python实现超级马里奥
Mar 18 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
Python中如何处理常见报错
Jan 18 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
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP中4种常用的抓取网络数据方法
2015/06/04 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
MVVM 双向绑定的实现代码
2018/06/21 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
python中利用matplotlib读取灰度图的例子
2019/12/07 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
keras实现多种分类网络的方式
2020/06/11 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
大学同学聚会邀请函
2014/01/29 职场文书
广告宣传策划方案
2014/05/21 职场文书
面试自我评价范文
2014/09/17 职场文书
教师考核鉴定意见
2015/06/05 职场文书
小学大队长竞选稿
2015/11/20 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL