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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python计算时间差的方法
May 20 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
python编写暴力破解zip文档程序的实例讲解
Apr 24 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
Python定时任务sched模块用法示例
Jul 16 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
django迁移数据库错误问题解决
Jul 29 Python
Python hashlib模块实例使用详解
Dec 24 Python
pytorch 改变tensor尺寸的实现
Jan 03 Python
python glom模块的使用简介
Apr 13 Python
python 字典和列表嵌套用法详解
Jun 29 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
基于Zookeeper的使用详解
2013/05/02 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
解析javascript 实用函数的使用详解
2013/05/10 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
jQuery创建及操作xml格式数据示例
2018/05/26 jQuery
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
js实现无缝轮播图效果
2020/03/09 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Python简单进程锁代码实例
2015/04/27 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
三年级科学教学反思
2014/01/29 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书