今天在处理html数据的时候发现了python里面比较好玩的几个库,先存起来之后有时间慢慢再去学习和使用,觉得是一件蛮有意思的事情。今天想学习使用的是html2text模块和readability模块。其中,第一个模块是负责对html数据进行处理的,返回html中的文本信息;第二个模块是负责html数据中指定信息如:文章标题、作者等信息的提取。

之前在处理爬取的html数据的时候大多数是自己编写正则表达式或者是xpath规则集来完成指定数据字段信息的提取,相对来说比较灵活,但是规则集的编写较为耗时,且遇上复杂数据的时候就难以应付了。如果有现成的封装好的模块可以直接完成某一项工作的话还是很不错的,这两个库可以说还是比较不错,今天只是简单拿来使用一下,之后再做到类似的项目的时候可以将一部分的工作交由固定模块来完成。

下面是具体的实践:

#!usr/bin/env python
# encoding:utf-8'''
__Author__:沂水寒城
功能: html2text 模块和 readability 模块使用
'''import sys
import urllib
import requests
import html2text
from readability import Documentreload(sys)
sys.setdefaultencoding('utf-8')def test_func():'''官网实例,清洗html'''print html2text.html2text("<p>Hello, world.</p>")h=html2text.HTML2Text()h.ignore_links=Trueprint h.handle("<p>Hello, <a href='http://earth.google.com/'>world</a>!")def test_func2(url):'''获取指定URL的html,对html进行处理'''html=urllib.urlopen(url).read()h=html2text.HTML2Text()h.ignore_links=Trueprint h.handle(html)def test_func3(url):'''抽取指定URL中的标题等数据'''response=requests.get(url)doc=Document(response.text)print doc.title()html=urllib.urlopen(url).read()#该方式抽取出来的readable_article是带HTML标签的文本readable_article=Document(html).summary() readable_title=Document(html).short_title()print 'readable_article: ',readable_articleprint 'readable_title: ',readable_titleif __name__=='__main__':url='https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_2588586383061242738%22%7D&n_type=0&p_from=1'test_func()print '-|'*50test_func2(url)print '-|'*50test_func3(url)

运行结果如下:

Hello, world.Hello, world!-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
![到百度首页](https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superlanding/img/logo_top.png)百度首页登录masterretsam __个人中心帐号设置意见反馈退出__## 巴西国博大火 “就像是一场噩梦”新浪滚动09-0410:07原标题:巴西国博大火 “就像是一场噩梦”来源:央视新闻客户端3号的清晨对于刚刚从睡梦中醒过来的巴西人来说“异常沉重”,因为就在2号晚,有着两百年历史的巴西国家博物馆着起大火,馆内的超过2000万件藏品恐怕已经尽数被烧毁。![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3920112549,1657221130&fm=173&app=25&f=JPG?w=555&h=384&s=EC1605D3D3521FC444DD942003006051)巴西历史学家 雷吉娜·丹塔斯:这就像一场噩梦,我多么希望这真的只是一场梦,我可以从梦中醒来(看到博物馆还在)。两千多万件藏品恐俱毁 正全力挽救3号白天,大火已经基本被扑灭。当地消防部门说,他们将请博物馆的工作人员参与灭火及善后工作,及时清点藏品损毁情况,看看还有多少藏品可以“挽救”。消防员 罗伯托:在灭火后续工作中,我们计划让博物馆工作人员加入进来,虽然这样一来灭火工作会慢一些,但我们可以尽量挽回一些有价值的藏品,比如碎片什么的。![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=1044145344,417326984&fm=173&app=25&f=JPG?w=557&h=376&s=78B24CDB5A6A944B5294A92903008052)巴西国家博物馆陨石展馆负责人
玛丽亚:他们(消防员)邀请我到现场,因为我能辨认出(有修复价值的藏品),我知道这些藏品在什么位置,我会尽力找到它们(藏品),把这些珍宝从灰烬中挖出来。火因待查 消防设施缺水耽误灭火目前,起火原因还在调查中。巴西文化部长塞尔吉奥·莱唐对媒体说,火灾可能是因电路短路或人们放飞的“天灯”引起的。![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3622914777,2277118710&fm=173&app=25&f=JPG?w=559&h=386&s=9FB675840802745D48040D1A0300D0C2)而不论原因如何,为什么大火会不受控制地迅速蔓延、短时间内“吞噬”掉整座博物馆呢?据报道,博物馆灭火设施缺水是导致消防队耽误灭火最佳时机的原因。馆长呼吁重建 “不要失去历史”近年来,巴西经济状况不佳,里约州经济更是尤为困难。![](https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=3677156176,2992792008&fm=173&app=25&f=JPG?w=560&h=387&s=3828FE148A407F5DC8AFC9620300F07B)据巴西媒体报道,博物馆员工过去就常抱怨政府削减经费、博物馆建筑维护不足等问题。据博物馆副馆长说,他们长期面临经费不足的困境,多年前就向不同层级政府求援过,但却很少得到积极回应。![](https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=4237421123,4025531564&fm=173&app=25&f=JPG?w=555&h=380&s=B2EA69A04A1025D4588014B203001082)巴西国家博物馆馆长 亚历山大·克尔纳:哭也于事无补,所有人,特别是联邦政府,必须全力以赴重建博物馆。我们已经失去了部分藏品,不要让巴西人就此失去历史。查看原文 >>产品建议及投诉请联系:shoujibaidu@baidu.com## 相关搜索* 巴西土著人* 巴西人是什么人种* 巴西有几个首都## 相关文章* ![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=1805707812,3403376447&fm=173&app=25&f=JPEG?w=218&h=146&s=FE141CC64731098C2E82A53203002019)### 巴西国博大火背后:一场并不意外的悲剧?环球网09-04* ![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3158325315,3340295532&fm=173&app=25&f=JPEG?w=218&h=146&s=25429B42C512B5D45CCD501A0300C0C2)### 巴西国博向民众征集藏品照片 希望保存国家博物馆的记忆封面新闻09-04* ![](https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=3751404795,2017856209&fm=173&app=25&f=JPEG?w=218&h=146&s=B61C1CC79E1322CC1537483B0300101A)### 巴西国博大火毁灭千万文物,令全世界为之心痛 | 新京报快评新京报09-04* ![](https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1030059667,3886884205&fm=173&app=25&f=JPEG?w=218&h=146&s=779414C446F2ABC256307C050300F090)### 巴西国家博物馆失火,2000万件馆藏文物付之一炬!避火诀09-04* ![](https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=3540318962,1903945862&fm=173&app=25&f=JPEG?w=218&h=146&s=FE3A67CB0EA3BE550AE18002030010C3)### 珍贵文物深陷火海,巴西博物馆之悲为文物界敲响警钟上海观察09-04设为首页(C) Baidu 使用百度前必读 意见反馈 京ICP证030173号
![](https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/copy_rignt_24.png)__京公网安备11000002000001号返回顶部-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
巴西国博大火 “就像是一场噩梦”
readable_article:  <html><body><div><div class="article " id="article" data-islow-browser="0"><p class="article-title"><h2>巴西国博大火 “就像是一场噩梦”</h2></p><p class="article-source"><span class="source">新浪滚动</span><span class="date">09-04</span><span class="time">10:07</span></p><div class="article-content"><p>原标题:巴西国博大火 “就像是一场噩梦”</p><p>来源:央视新闻客户端</p><p>3号的清晨对于刚刚从睡梦中醒过来的巴西人来说“异常沉重”,因为就在2号晚,有着两百年历史的巴西国家博物馆着起大火,馆内的超过2000万件藏品恐怕已经尽数被烧毁。</p><p>巴西历史学家 雷吉娜·丹塔斯:这就像一场噩梦,我多么希望这真的只是一场梦,我可以从梦中醒来(看到博物馆还在)。</p><p>两千多万件藏品恐俱毁 正全力挽救</p><p>3号白天,大火已经基本被扑灭。当地消防部门说,他们将请博物馆的工作人员参与灭火及善后工作,及时清点藏品损毁情况,看看还有多少藏品可以“挽救”。</p><p>消防员 罗伯托:在灭火后续工作中,我们计划让博物馆工作人员加入进来,虽然这样一来灭火工作会慢一些,但我们可以尽量挽回一些有价值的藏品,比如碎片什么的。</p><p>巴西国家博物馆陨石展馆负责人 玛丽亚:他们(消防员)邀请我到现场,因为我能辨认出(有修复价值的藏品),我知道这些藏品在什么位置,我会尽力找到它们(藏品),把这些珍宝从灰烬中挖出来。</p><p>火因待查 消防设施缺水耽误灭火</p><p>目前,起火原因还在调查中。巴西文化部长塞尔吉奥·莱唐对媒体说,火灾可能是因电路短路或人们放飞的“天灯”引起的。</p><p>而不论原因如何,为什么大火会不受控制地迅速蔓延、短时间内“吞噬”掉整座博物馆呢?据报道,博物馆灭火设施缺水是导致消防队耽误灭火最佳时机的原因。</p><p>馆长呼吁重建 “不要失去历史”</p><p>近年来,巴西经济状况不佳,里约州经济更是尤为困难。</p><p>据巴西媒体报道,博物馆员工过去就常抱怨政府削减经费、博物馆建筑维护不足等问题。据博物馆副馆长说,他们长期面临经费不足的困境,多年前就向不同层级政府求援过,但却很少得到积极回应。</p><p>巴西国家博物馆馆长 亚历山大·克尔纳:哭也于事无补,所有人,特别是联邦政府,必须全力以赴重建博物馆。我们已经失去了部分藏品,不要让巴西人就此失去历史。</p></div><div class="notice"><p>产品建议及投诉请联系:shoujibaidu@baidu.com</p></div><audio id="musicAudio" data-play-index=""><source/></audio></div></div></body></html>
readable_title:  巴西国博大火 “就像是一场噩梦”
[Finished in 1.7s]

对于代码相关的注释,程序中也都有就不多说明了。

python网络数据处理之html2text模块和readability模块学习使用相关推荐

  1. python网络爬虫系列(四)——requests模块

    requests模块 知识点: 掌握 headers参数的使用 掌握 发送带参数的请求 掌握 headers中携带cookie 掌握 cookies参数的使用 掌握 cookieJar的转换方法 掌握 ...

  2. 肝!Python 网络编程

    什么是网络? 网络就是一种辅助双方或者多方能够连接在一起,然后可以进行数据传递的工具. 就是为了联通多方然后进行通信用的,即把数据从一方传递给另外一方,为了让在不同的电脑上运行的软件,之间能够互相传递 ...

  3. python网络爬虫用到哪些技术_做Python网络爬虫需要掌握哪些核心技术?

    在当下这个社会,如何有效地提取并利用信息成为一个巨大的挑战.基于这种巨大的市场需求,爬虫技术应运而生,这也是为什么现在爬虫工程师的岗位需求量日益剧增的原因.那么做Python网络爬虫需要掌握哪些核心技 ...

  4. python 网页爬虫作业调度_第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业. 4.提供图片或网站显示的学习 ...

  5. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  6. 自学Python第十四天- 一些有用的模块:urllib、requests 网络编程基础,向爬虫靠拢

    自学Python第十四天- 一些有用的模块:urllib.requests 网络编程基础,向爬虫靠拢 fake_useragent 库 安装 fake_useragent 使用 urllib 库 ur ...

  7. python网络爬虫应用_Python网络爬虫(requests模块应用1)

    一.什么是requests模块? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位. 二.为什 ...

  8. python模块下载1002python模块下载_【Python】Python的urllib模、urllib2模块的网络下载文件...

    因为需要从一些下载一个页PDF文件.但是需要下载PDF有数百个文件,这是不可能用人工点击下载.只是Python有相关模块,所以写一个程序PDF文件下载,顺便熟悉Python的urllib模块和ulrl ...

  9. Python网络爬虫(三. Requests模块)

    Requests 模块 首先一个简单的requests请求例子(直接复制到PyCharm即可运行): import requestsurl = "https://www.baidu.com& ...

最新文章

  1. python 增加维度_Python3 Tensorlfow:增加或者减小矩阵维度的实现
  2. pandas数据预处理(字段筛选、query函数进行数据筛选、缺失值删除)、seaborn可视化分面图(facet)、seaborn使用Catplot可视化分面箱图(Faceted Boxplot)
  3. 【iOS】图片缩放动画
  4. Gradle 之语言基础 Groovy
  5. MySQL执行原理,逻辑分层、更改数据库处理引擎
  6. 【渝粤题库】广东开放大学标准文献检索与应用 形成性考核
  7. android9的手机,可防手机上瘾?安卓9.0首批升级的机型都在这里
  8. 支持向量机(SVM)-文本分类 (1)
  9. mysql pk_mysql_1
  10. loadlin.exe
  11. lightGBM用于排序(Learning to Rank )
  12. 网页版结题报告html没了,[转载]我的结题报告
  13. 【期末复习】计算机算法设计与分析
  14. android自定义剪切板,Android10适配之剪切板
  15. 谷歌神经网络机器翻译NMT:人人可利用TensorFlow快速建立翻译模型
  16. 21中科大软件学院上岸经验帖
  17. 影视后期行业概述、制作流程、岗位划分、薪资待遇、课程介绍详解
  18. 笔记 C++11 std::minmax_element() 的使用(寻找最小值和最大值)
  19. 蓝桥杯青少年创意编程C++组赛前集训教程包
  20. ubuntu QQ安装 网易云音乐 rar文件 截屏软件Shutter 图片编辑pinta 文字软件typora 视频播放器smplayer

热门文章

  1. 设计模式-工厂、建造、观察
  2. 基于阿里云ECS弹性云服务器快速搭建Docker环境
  3. C++查找子串string.find()与string::npos
  4. 刷脸支付时代新技术层出不穷我们应适应科技发展
  5. 微信小程序仿抖音上下滑动整屏切换视频
  6. CASS10.1.6+CAD2016
  7. 我在OData的经历
  8. python :codecs模块简介
  9. 苹果邮箱要设置发件服务器密码,Mac Mail要求输入密码?谢谢如何解决 | MOS86
  10. 线上招聘直播方案有哪些