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 27 Python
举例讲解Python中的list列表数据结构用法
Mar 12 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
python实现超市扫码仪计费
May 30 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
python3实现逐字输出的方法
Jan 23 Python
python画蝴蝶曲线图的实例
Nov 21 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
Jun 10 Python
python调用私有属性的方法总结
Jul 24 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 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
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
php递归json类实例
2014/12/02 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
详解从NodeJS搭建中间层再谈前后端分离
2018/11/13 NodeJs
浅谈js闭包理解
2019/04/01 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
详解重置Django migration的常见方式
2019/02/15 Python
Python笔试面试题小结
2019/09/07 Python
使用Python实现Wake On Lan远程开机功能
2020/01/22 Python
Python使用type动态创建类操作示例
2020/02/29 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
Java的五个基础面试题
2016/02/26 面试题
优秀员工个人的自我评价
2013/11/29 职场文书
国贸专业自荐信范文
2014/03/02 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
初中教师个人总结
2015/02/10 职场文书
宣传稿格式范文
2015/07/23 职场文书
大学开学感言
2015/08/01 职场文书
《学会看病》教学反思
2016/02/17 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android