3

我正在为我的 ruby​​ on rails 项目寻找一个 ruby​​ gem,用于从网页中提取内容。我找到了ruby​​-readability gem,但它不支持文章的多页。你能推荐一个也支持多页文章提取的gem吗?

或者我如何编码识别文章上的多个站点的能力?

谢谢

4

1 回答 1

4

您可以将Pismo之类的高级 gem与Mechanize结合使用,以迭代地遍历每个页面并连接文章的正文。为此,您需要知道哪个链接将您带到下一页。谷歌正在推动采用基于 rel 属性的约定

<a href="blog-post?page=2" rel='next'>next</a>

这是一个非常粗略的 ruby​​ 代码草稿:

agent = WWW::Mechanize.new
agent.get("http://www.awesomeblog.com/amazing-article")

scraper.text = MyScraper.new(:text => Pismo::Document.new(agent.url))

while agent.page.link_with("rel='next'").click do
  pismo_doc = Pismo::Document.new(agent.url)
  scraper.text << pismo_doc.lede
end

scraper.save!

这是伪代码/疯狂的猜测(我不知道机械化的 API),但你明白了。

于 2013-01-11T18:11:06.380 回答