如何使用Ruby / Rails从网站获取内容?

我想使用ruby / rails从网站复制一些特定内容。 我需要的内容是在一个marquee html标签内,除以div。 如何使用ruby访问此内容? 更确切地说 – 我想使用某种ruby(最好是鞋子)。 我该怎么做?

这不是一个真正的Rails问题。 这是你使用Ruby做的事情,然后可能使用Rails,或Sinatra或Padrino显示 – 选择你的毒药。

您可以使用几种不同的HTTP客户端:

Open-URI附带Ruby,是最简单的。 Net :: HTTP附带Ruby并且是标准的工具箱,但它是较低级别的,所以你必须做更多的工作。 HTTPClient和Typhoeus + Hydra能够进行线程化并具有高级和低级接口。

我建议使用Nokogiri来解析返回的HTML。 它function齐全,function强大。

require 'nokogiri' require 'open-uri' doc = Nokogiri::HTML(open('http://www.example.com')) puts doc.to_html 

如果您需要浏览登录屏幕或填写表单,然后才能进入需要解析的页面,那么我建议您查看Mechanize。 它在内部依赖于Nokogiri,因此您可以向它询问Nokogiri文档,并在Mechanize检索到所需的URL后解析。

如果您需要处理动态HTML,请查看各种WATIR工具。 他们驱动各种Web浏览器,然后让您访问浏览器看到的内容。

获得所需的内容或数据后,可以将其“重新调整”到Rails页面内的文本中。

如果我理解正确,你需要一个网站刮板的GUI界面。 如果是这样,你可能需要自己构建一个。

刮网站的最简单方法是使用nokogiri或机械化gem。 基本上,您将为这些库提供网站的地址,然后使用其XPathfunction从DOM中选择文本。

https://github.com/sparklemotion/nokogiri

https://github.com/sparklemotion/mechanize (文档)