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计数排序和基数排序算法实例
Apr 25 Python
详解使用python的logging模块在stdout输出的两种方法
May 17 Python
浅谈Python peewee 使用经验
Oct 20 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
python 提取key 为中文的json 串方法
Dec 31 Python
python 猴子补丁(monkey patch)
Jun 26 Python
python3下pygame如何实现显示中文
Jan 11 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
Mar 09 Python
Django数据库操作之save与update的使用
Apr 01 Python
基于Python正确读取资源文件
Sep 14 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设计模式中单例模式的应用分析
2013/05/15 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
php分页代码学习示例分享
2014/02/20 PHP
php过滤敏感词的示例
2014/03/31 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
javascript格式化指定日期对象的方法
2015/04/21 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python 提取文件的小程序
2009/07/29 Python
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
Python实现的异步代理爬虫及代理池
2017/03/17 Python
html5利用canvas绘画二级树形结构图的示例
2017/09/27 HTML / CSS
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
如何提高SQL Server的安全性
2016/07/25 面试题
保护环境演讲稿
2014/05/10 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
高中班主任评语
2014/12/30 职场文书
网吧温馨提示
2015/07/17 职场文书
教你如何用cmd快速登录服务器
2022/06/10 Servers