问题 如何从网页中提取有意义且有用的内容? [关闭]


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

简而言之,我需要构建一个与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/ )或美丽的汤( http://www.crummy.com/software/BeautifulSoup/bs4/doc/ )做好这份工作。

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

PS。我是一个业余爱好者,如果准备好使用开源工具来做这件事,我会很高兴,并且可以很容易地集成到我用PHP或Python编写的代码中。 或者,如果我必须编写自己的代码,我很乐意获得以前完成此类工作的指导! :) 非常感谢!


9888
2017-12-09 20:11


起源



答案:


你在谷歌输入'python readability'了吗? github上有一个非常受欢迎的(200多个粉丝)库。

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

另外,如果你输入'php readability'有一个php,虽然它有100个粉丝它已经有近两年的活动了 https://github.com/feelinglucky/php-readability

最后,最流行的(350多个github folowers)是ruby可读性端口 https://github.com/iterationlabs/ruby-readability

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


9
2017-12-09 20:46



非常感谢您的回复。正如我所说,我是一个业余爱好者,我不知道这是否可以在我的服务器本地工作,没有互联网访问。我想提供一个HTML文档(保存在磁盘上)然后这能够给我一个'干净'的文件吗?基本上,这是可读性服务的API(需要访问可读性服务器)还是一个自给自足的代码?谢谢! :) - user1271286
@ user1271286这些是不需要Web请求的库。你可以将它们传递给html,就像python可读性一样 readable_article = Document(html).summary() readable_title = Document(html).short_title()  html 这里只是一串html - dm03514
非常感谢您的帮助! :)将继续努力,我会在这里发布它的工作原理! - user1271286
我今天遇到的最有用的答案。谢谢! - learnJQueryUI


答案:


你在谷歌输入'python readability'了吗? github上有一个非常受欢迎的(200多个粉丝)库。

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

另外,如果你输入'php readability'有一个php,虽然它有100个粉丝它已经有近两年的活动了 https://github.com/feelinglucky/php-readability

最后,最流行的(350多个github folowers)是ruby可读性端口 https://github.com/iterationlabs/ruby-readability

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


9
2017-12-09 20:46



非常感谢您的回复。正如我所说,我是一个业余爱好者,我不知道这是否可以在我的服务器本地工作,没有互联网访问。我想提供一个HTML文档(保存在磁盘上)然后这能够给我一个'干净'的文件吗?基本上,这是可读性服务的API(需要访问可读性服务器)还是一个自给自足的代码?谢谢! :) - user1271286
@ user1271286这些是不需要Web请求的库。你可以将它们传递给html,就像python可读性一样 readable_article = Document(html).summary() readable_title = Document(html).short_title()  html 这里只是一串html - dm03514
非常感谢您的帮助! :)将继续努力,我会在这里发布它的工作原理! - user1271286
我今天遇到的最有用的答案。谢谢! - learnJQueryUI


你可以使用htql。

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

result=htql.query(page, query)

2
2017-12-09 22:32



谢谢!看起来很简单! :)会尝试一下! - user1271286