如何从网页中提取有意义和有用的内容?

2024-04-26 06:06:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我不想使用需要连接到internet并从其服务器获取数据的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编写的工具来进行这种web抓取?

如果我需要建立我自己的工具来做这件事,你们建议怎么做?

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

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

我是一个业余爱好者,如果有现成的开源工具可以做到这一点,我会很高兴,并且可以很容易地集成到我的代码中,我将用PHP或Python编写。 或者如果我必须写我自己的代码,我希望得到指导谁做过这样的工作!:) 谢谢!


Tags: 工具数据代码用户文本comhttp网页
2条回答

你在google中输入了“python readability”吗?github上有一个非常流行的(200多个关注者)库。

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

另外,如果要输入'php readability'的话,还有一个php,尽管它有100个追随者,但它已经两年没有活动了 https://github.com/feelinglucky/php-readability

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

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

您可以使用htql。

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

result=htql.query(page, query)

相关问题 更多 >