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判断端口是否打开的实现代码
Feb 10 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
新年快乐! python实现绚烂的烟花绽放效果
Jan 30 Python
详解如何设置Python环境变量?
May 13 Python
tensorflow自定义激活函数实例
Feb 04 Python
Django 设置多环境配置文件载入问题
Feb 25 Python
Python任务自动化工具tox使用教程
Mar 17 Python
pandas apply多线程实现代码
Aug 17 Python
python 5个实用的技巧
Sep 27 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
教你怎么用python爬取爱奇艺热门电影
May 20 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
一个程序下载的管理程序(二)
2006/10/09 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
JS返回iframe中frameBorder属性值的方法
2015/04/01 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
浅谈vuepress 踩坑记
2018/04/18 Javascript
前端Electron新手入门教程详解
2019/06/21 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
2019/12/12 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
Python datetime时间格式化去掉前导0
2014/07/31 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python中的TCP socket写法示例
2018/05/11 Python
详解Python学习之安装pandas
2019/04/16 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
英文翻译的自我评价语句
2013/10/04 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
五年级小学生评语
2014/12/26 职场文书
幼师中班个人总结
2015/02/12 职场文书
银行先进个人总结
2015/02/15 职场文书
爱国影片观后感
2015/06/18 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
Linux系统下MySQL配置主从分离的步骤
2022/03/21 MySQL