12

我想解析一个网页并从中提取有意义的内容。我所说的有意义,是指用户希望在该特定页面中看到的内容(仅文本)(不包括广告、横幅、评论等的数据)。我想确保当用户保存页面时,他想要的数据读取已保存,仅此而已。

简而言之,我需要构建一个像 Readability 一样工作的应用程序。( http://www.readability.com ) 我需要获取网页的这些有用内容并将其存储在单独的文件中。我真的不知道该怎么做。

我不想使用需要我连接到互联网并从他们的服务器获取数据的 API,因为数据提取过程需要离线完成。

我能想到的方法有两种:

  1. 使用基于机器学习的算法(例如:http ://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/ )

  2. 开发一个可以令人满意地从网页中清除所有混乱的网络刮刀。

是否有现有的工具可以做到这一点?我遇到了锅炉管库(http://code.google.com/p/boilerpipe/),但没有使用它。有人用过吗?它是否给出了令人满意的结果?有没有其他工具,特别是用 PHP 或 Python 编写的,可以进行这种网络抓取?

如果我需要构建自己的工具来做到这一点,你们会建议做什么?

因为我需要在开始解析之前清理凌乱或不完整的 HTML,所以我会使用像 Tidy ( http://www.w3.org/People/Raggett/tidy/ ) 或 Beautiful Soup ( http: //www.crummy.com/software/BeautifulSoup/bs4/doc/)来完成这项工作。

但是我不知道在这一步之后如何提取内容。

PS。我是一名业余爱好者,如果有准备好使用开源工具来执行此操作,并且可以轻松集成到我将用 PHP 或 Python 编写的代码中,我会很高兴。或者,如果我必须编写自己的代码,我很想得到以前做过此类工作的指导!:) 非常感谢!

4

2 回答 2

11

你在谷歌中输入了“python 可读性”吗?github 上有一个非常受欢迎的(200 多个关注者)库。

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

此外,如果您要输入“php 可读性”,还有一个 php,尽管它有 100 个关注者,但它已经有近两年没有活动了 https://github.com/feelinglucky/php-readability

最后最受欢迎(350+ github 关注者)是 ruby​​ 可读性端口 https://github.com/iterationlabs/ruby-readability

至少您可以看到这 3 个不同的项目如何完成解析网页的“重要部分”。

于 2012-12-09T20:46:26.607 回答
3

您可以使用 html。

import htql
page="..."
query="&html_main_text"

result=htql.query(page, query)
于 2012-12-09T22:32:34.530 回答