我正在尝试用PHP编写一个文本解析器,就像Instapaper一样。我想做的是;获取一个网页,并以纯文本模式解析它。
获取带有cURL和条带式超文本标记语言的网页很简单。但每个网页都有一些共同的区域,如页眉,导航,侧边栏,页脚,横幅等。我只想获得的文章在文本模式,并排除所有其他部分。如果我知道"id“或"class”信息,那么排除这些部分也很简单。但我正在尝试自动化这个过程,并申请任何页面,如Instapaper。
我得到了所有的内容之间,但我不知道如何排除页眉,侧栏或页脚,只得到正文的文章。我必须开发一个逻辑来只获得主要的文章部分。
找到确切的代码对我来说并不重要。了解如何排除不必要的部分也很有用,因为我可以尝试用PHP编写自己的代码。如果有其他语言的例子,也会很有用。
谢谢你的帮助。
发布于 2010-01-24 09:11:06
你可以试着看看这个书签程序readability背后的算法--它在所有网页垃圾中提取内容的成功率相当高。
这是我的一个朋友做的,这就是我推荐它的原因--因为我知道它是有效的,而且我知道他用来解析数据的许多技术。你可以应用这些技术来满足你的需求。
发布于 2010-12-21 07:11:42
你可以看看Goose ->的源代码,它已经做了很多类似于instapaper文本提取的工作
发布于 2011-02-21 06:57:49
看看来自Shuyo Nakatani的ExtractContent代码。
请参阅原始的Ruby源代码http://rubyforge.org/projects/extractcontent/或将其移植到Perl http://metacpan.org/pod/HTML::ExtractContent。
https://stackoverflow.com/questions/2125449
复制相似问题