我想解析网页并从中提取有意义的内容。有意义的,我指的是用户想要在该特定页面中看到的内容(仅文本)(数据不包括广告,横幅,评论等)我想确保当用户保存页面时,他想要的数据读保存,没有别的。
简而言之,我需要构建一个与Readability类似的应用程序。 (http://www.readability.com)我需要获取网页的这些有用内容并将其存储在单独的文件中。我真的不知道如何去做。
我不想使用需要我连接到互联网并从服务器获取数据的API,因为数据提取过程需要离线完成。
我能想到两种方法:
使用基于机器学习的算法(例如:http://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/)
开发一个可以令人满意地清除网页中所有混乱的网络抓取工具。
是否有现成的工具可以执行此操作?我遇到了samppipe库(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编写的代码中。 或者,如果我必须编写自己的代码,我很乐意获得之前完成此类工作的指导! :) 非常感谢!
答案 0 :(得分:9)
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个不同的项目如何完成解析网页的“重要部分”。
答案 1 :(得分:2)
您可以使用htql。
import htql
page="..."
query="&html_main_text"
result=htql.query(page, query)