【Python】提取网页正文内容的相关模

发布时间:2019-08-28 09:14:06编辑:auto阅读(1705)

      【Python】提取网页正文内容的相关模块与技术

      1、正文抽取地址

      https://github.com/buriy/python-readability

      【安装】

      pip install readability-lxml

      【测试】

      python -m readability.readability -u

      http://www.douban.com/note/320982627/

      【PATH依赖】

      export PYTHONPATH=/usr/local/lib/python2.7/site-packages

      必须是2.7的PYTHON,所以必须这么搞,还得看看怎么让PYTHON2.7和PYTHON3.3共存

      =============================================================================

      2、官方例子

      from readability.readability import Document

      import urllib

      html = urllib.urlopen(url).read()

      readable_article = Document(html).summary()

      readable_title = Document(html).short_title()

      ==============================================================================

      3、清理HTML

      项目地址

      https://github.com/aaronsw/html2text

      【安装】

      pip install html2text

      【代码】

      # -*- coding: utf-8 -*-

      import html2text

      print html2text.html2text(u'

      (1)网页去噪

      网页去噪需要去掉与网页内表达内容不相关的文字,如广告,评论等等。现在对于博客、新闻类的网页去噪已经有很多的应用,比如常用的印象笔记、有道笔记就用到了相关的技术。

      因为项目的需要,也需要对网页进行去噪,留下有用的内容。所以在网上找了相关的网页去噪的开源项目。

      (2)参考链接

      主要参考的链接是这篇“网页正文抽取工具”, 应该是抓取的新浪weibo上的相关的微博内容。里面介绍了给出了项目的地址,有Java、C++、C#、Perl、Python的。

      因为项目是Python写的,所以初步选定使用 Decruft , Python readability , Python boilerpipe ,Pyhon Goose这几种。

      (3)实践操作

      Python readability的使用:

      from readability.readability import Document

      import urllib

      html = urllib.urlopen(url).read()

      readable_article = Document(html).summary()

      readable_title = Document(html).short_title()

      最后抽取出来的readable_article是带HTML标签的文本。还需要进行clean html操作。如果需要得到纯文本内容,还需要做其他工作

      “decruft is a fork of python-readability to make it faster. It also has some logic corrections and improvements along the way.” (引自:

      )

      decruft是Python readability的fork版本,其主要提高了readability的速度。decruft的源码是放在Goolge上的,发现他只有0.1版本,而且是10年9月的,但是Python-readability一直在更新的,其核心的readability.py是7个月前更新的,所以不能保证decruft的性能要比现在的readability好,我没有下载decruft进行试验,有兴趣可以自己试验一下。

      Python-boilerpipe:是Boilerpipe的Python版本的Warpper,在使用的时候需要依赖jpype, chardet. 在构造Extractor的时候可以定制自己需要的抽取器,具体有:

      DefaultExtractor男性如何才能使阴茎变粗呢

      ArticleExtractor

      ArticleSentencesExtractor

      KeepEverythingExtractor患有阳痿是怎么回事呢?

      KeepEverythingWithMinKWordsExtractor

      LargestContentExtractor

      NumWordsRulesExtractor

      CanolaExtractor

      这个项目可以自己选择抽取出的正文内容格式:可以是纯文本的,也可以是携带HTML的。

      Python-Goose:

      经过试验,决定使用Goose,可以在这个网址上测试

      http://jimplush.com/blog/goose六味地黄丸可以治早泄吗?

      Goose的抽取效果。Goose还能够获得Meta description。

      Goose最后可以获得抽取后的纯文本。

      ')

关键字