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 运算符 供重载参考
Jun 11 Python
python基于xml parse实现解析cdatasection数据
Sep 30 Python
简单介绍利用TK在Python下进行GUI编程的教程
Apr 13 Python
python简单猜数游戏实例
Jul 09 Python
Python实现的RSS阅读器实例
Jul 25 Python
Python用threading实现多线程详解
Feb 03 Python
Python信息抽取之乱码解决办法
Jun 29 Python
python数据结构之链表详解
Sep 12 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
Python简单实现区域生长方式
Jan 16 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
python 爬取小说并下载的示例
Dec 07 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 表单验证实现代码
2009/03/10 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php微信公众平台开发类实例
2015/04/01 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
use jscript List Installed Software
2007/06/11 Javascript
IE8下关于querySelectorAll()的问题
2010/05/13 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
Vue2.0生命周期的理解
2018/08/20 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
Python下线程之间的共享和释放示例
2015/05/04 Python
python图像处理之镜像实现方法
2015/05/30 Python
python根据京东商品url获取产品价格
2015/08/09 Python
python生成器表达式和列表解析
2016/03/10 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python中的句柄操作的方法示例
2019/06/20 Python
python统计字符串中字母出现次数代码实例
2020/03/02 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
python里反向传播算法详解
2020/11/22 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
留学推荐信写作指南
2014/01/25 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
厉行节约工作总结
2015/08/12 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫