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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
python回调函数的使用方法
Jan 23 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
May 15 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
Apr 17 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
Jul 30 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 Python
python如何为list实现find方法
May 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图片验证码制作实现分享(全)
2012/05/10 PHP
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php抽奖小程序的实现代码
2013/06/18 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
纯javascript版日历控件
2016/11/24 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
windows上安装Anaconda和python的教程详解
2017/03/28 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
外企C语言笔试题
2013/11/10 面试题
应届生护士求职信
2013/11/01 职场文书
统计岗位职责
2014/02/21 职场文书
白酒市场营销方案
2014/02/25 职场文书
2014年共青团工作总结
2014/12/10 职场文书
项目投资意向书范本
2015/05/09 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android