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实现多线程抓取知乎用户
Dec 12 Python
详解python3百度指数抓取实例
Dec 12 Python
Python实现KNN邻近算法
Jan 28 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
python实现简易数码时钟
Feb 19 Python
python3安装speech语音模块的方法
Dec 24 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
Python3实现二叉树的最大深度
Sep 30 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python引入其他文件夹下的py文件具体方法
May 23 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
解析php5配置使用pdo
2013/07/03 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
JavaScript作用域链使用介绍
2013/08/29 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
python编写简单爬虫资料汇总
2016/03/22 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python脚本生成caffe train_list.txt的方法
2018/04/27 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
python matlibplot绘制3D图形
2018/07/02 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
Michael Kors加拿大官网:购买设计师手袋、手表、鞋子、服装等
2019/03/16 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
烹调加工管理制度
2014/02/04 职场文书
师范类求职信
2014/06/21 职场文书
七一建党节演讲稿
2014/09/11 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang