如何使用具有不同要求的Nokogiri从数据库中抓取不同的URL

时间:2017-01-16 09:49:39

标签: ruby-on-rails ruby rss nokogiri feedjira

我尝试使用Feedjira协助新闻源进行内容分析,但现在看来RSS源只链接到内容,而不是像我在“Feedjira not adding content and author”中找到的那样用RSS包含它们。我计划使用Feedjira来获取文章的URL,但是然后使用Nokogiri来抓取文章并选择相关部分。

问题是每个媒体插件的页面格式都不同,我需要知道Nokogiri从数据库中获取URL的最佳方式(由Feedjira提供)并根据相关的Feed标题(也是来自Feedjira sync的数据库)以特定方式抓取页面并将其保存到数据库中的单独表中。有人有任何建议吗?

2 个答案:

答案 0 :(得分:0)

我不知道您的特殊用例,但我也在使用新闻源进行内容分析。 也许你会看一下Readability,它为你提供了一个通用的内容刮刀。

答案 1 :(得分:0)

您遇到的问题是每个Feed生成器的执行方式都有所不同,就像HTML生成器一样。您可以假设某些字段将在RDF,RSS或ATOM提要中存在,但是提要的作者可以使用您认为非常有用的可选标记,因此您必须编写代码来查找它们。

我过去曾写过几个Feed聚合器,包括每天处理超过1000个Feed的聚合器。通过嗅探Feed类型,ATOM与RSS与RDF,然后我可以对给定格式的有趣字段进行合理检查,并提取数据(如果可用)。

预先解决的解析器经常出错,要么抓取你不想要的数据并弄乱输出,要么跳过你想要在输出中留下间隙的数据,所以要准备好编写代码如果你想要的话它做得正确。

你可能也想利用一个支持数据库来跟踪你最后看到的内容以及你应该再次查看它的时间;这是成为优秀网络公民的一部分。你还需要跟踪你看过去的n次进度是否有所下降所以你可以删除死网站。