我想使用 ruby/rails 从网站复制一些特定内容。 我需要的内容在一个 marquee html 标签内,由 div 分割。 我怎样才能使用 ruby 访问这些内容? 更准确地说 - 我想使用某种 ruby gui(最好是鞋子)。 我该怎么做?
最佳答案
这不是真正的 Rails 问题。这是您使用 Ruby 完成的事情,然后可能使用 Rails、Sinatra 或 Padrino 进行显示 - 选择您的毒药。
您可以使用几种不同的 HTTP 客户端:
Open-URI 是 Ruby 自带的,是最简单的。 Net::HTTP 是 Ruby 附带的标准工具箱,但它的级别较低,因此您必须做更多的工作。 HTTPClient 和 Typhoeus+Hydra 具有线程能力,同时具有高层和低层接口(interface)。
我建议使用 Nokogiri 来解析返回的 HTML。它功能非常全面且强大。
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open('http://www.example.com'))
puts doc.to_html
如果您需要在到达需要解析的页面之前浏览登录屏幕或填写表单,那么我建议您查看 Mechanize。它在内部依赖于 Nokogiri,因此您可以向它请求 Nokogiri 文档,并在 Mechanize 检索到所需的 URL 后进行解析。
如果您需要处理动态 HTML,请查看各种 WATIR 工具。它们驱动各种网络浏览器,然后让您访问浏览器所见的内容。
获得所需的内容或数据后,您可以将其“重新调整”为 Rails 页面内的文本。
关于ruby-on-rails - 如何使用 Ruby/Rails 从网站获取内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5250547/