如何在rails中打开URL?

时间:2010-06-02 02:17:42

标签: ruby-on-rails screen-scraping

我正在尝试阅读某个网站的HTML。

尝试@something = open("http://www.google.com/")失败,并显示以下错误:

Errno::ENOENT in testController#show

No such file or directory - http://www.google.com/

转到http://www.google.com/,我很明显会看到该网站。我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:6)

您需要require 'open-uri'首先能够open()远程路径。

有关详细信息,请参阅the docs

答案 1 :(得分:2)

您应该使用像Nokogiri这样的实用程序来解析返回的内容,如下所示:

(来自Nokogiri site front page @ http://nokogiri.org/

require 'nokogiri'
require 'open-uri'

# Get a Nokogiri::HTML:Document for the page we’re interested in...

doc = Nokogiri::HTML(open('http://www.google.com/search?q=tenderlove'))

# Do funky things with it using Nokogiri::XML::Node methods...

# Search for nodes by css
doc.css('h3.r a.l').each do |link|
  puts link.content
end

将打印到屏幕:

<a href="http://some.link/">Some Link</a>