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的三目运算符和not in运算符使用示例
Mar 03 Python
python实现指定字符串补全空格的方法
Apr 30 Python
python获取文件扩展名的方法
Jul 06 Python
Python装饰器的执行过程实例分析
Jun 04 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
django DRF图片路径问题的解决方法
Sep 10 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python保存并浏览用户的历史记录
Apr 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中的Base62类(适用于数值转字符串)
2013/08/12 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
AngularJS内置指令
2015/02/04 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
2015/03/26 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
Javascript农历与公历相互转换的简单实例
2016/10/09 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
Python基于jieba库进行简单分词及词云功能实现方法
2018/06/16 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
python三引号如何输入
2020/07/06 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
建筑人员岗位职责
2013/12/25 职场文书
护士岗位职责
2014/02/16 职场文书
《猫》教学反思
2014/02/26 职场文书
全国文明单位申报材料
2014/05/31 职场文书
公司委托书怎么写
2014/08/02 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
新店开张活动方案
2014/08/24 职场文书
学校党员对照检查材料
2014/08/28 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
react中的DOM操作实现
2021/06/30 Javascript
Python+Tkinter制作专属图形化界面
2022/04/01 Python
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫