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

      今天在处理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 Document


reload(sys)
sys.setdefaultencoding('utf-8')



def test_func():
    '''
    官网实例,清洗html
    '''
    print html2text.html2text("<p>Hello, world.</p>")
    h=html2text.HTML2Text()
    h.ignore_links=True
    print 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=True
    print 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_article
    print 'readable_title: ',readable_title



if __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 '-|'*50
    test_func2(url)
    print '-|'*50
    test_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)

巴西国家博物馆馆长 亚历山大·克尔纳:哭也于事无补,所有人,特别是联邦政府,必须全力以赴重建博物馆。我们已经失去了部分藏品,不要让巴西人就此失去历史。

查看原文 >>

产品建议及投诉请联系:[email protected]

## 相关搜索

  * 巴西土著人
  * 巴西人是什么人种
  * 巴西有几个首都

## 相关文章

  * ![](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>产品建议及投诉请联系:[email protected]</p></div><audio id="musicAudio" data-play-index=""><source/></audio></div></div></body></html>
readable_title:  巴西国博大火 “就像是一场噩梦”
[Finished in 1.7s]

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

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/82389466
今日推荐