我正在尝试阅读某个网站的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/
,我很明显会看到该网站。我做错了什么?
谢谢!
答案 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>