ruby-on-rails - 如何使用 Ruby/Rails 从网站获取内容?

标签 ruby-on-rails ruby user-interface shoes

我想使用 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/

相关文章:

ruby - 使用 Rails 转发未经处理的多部分 HTTP 请求

JavaFX 按钮不可点击

ruby-on-rails - 如何将参数传递给 Rails 路由中的 block ?

ruby-on-rails - rails 多态,包含基于类的类型

mysql - Infinity、ActiveRecord 和 MySQL : storage and comparison

listview - Flutter:防止边缘削波

swift - 锁定方向 iMessenger 应用程序?

ruby-on-rails - bundler 如何工作?

ruby-on-rails - 尝试使用 Rspec 和 FactoryGirl 创建列表时验证失败?

javascript - Shopify ScriptTag 无法正常工作