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的web.py框架下的application.py模块
May 02 Python
Python卸载模块的方法汇总
Jun 07 Python
Java分治归并排序算法实例详解
Dec 12 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
python实现简单神经网络算法
Mar 10 Python
python 字典修改键(key)的几种方法
Aug 10 Python
Python简易计算器制作方法代码详解
Oct 31 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
Python基于BeautifulSoup爬取京东商品信息
Jun 01 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实现图象锐化代码
2007/06/14 PHP
php self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
php文件上传表单摘自drupal的代码
2011/02/15 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
基于three.js实现的3D粒子动效实例代码
2019/04/09 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
小程序实现锚点滑动效果
2019/09/23 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
Vue实现可移动水平时间轴
2020/06/29 Javascript
python检测远程服务器tcp端口的方法
2015/03/14 Python
python去除所有html标签的方法
2015/05/05 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
Python短信轰炸的代码
2020/03/25 Python
Django bulk_create()、update()与数据库事务的效率对比分析
2020/05/15 Python
为什么说python适合写爬虫
2020/06/11 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
2020/07/03 Python
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
公务员中国梦演讲稿
2014/08/19 职场文书
小学大队长竞选稿
2015/11/20 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
python保存图片的四个常用方法
2022/02/28 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android