Как открыть URL в рельсах? - PullRequest
2 голосов
/ 02 июня 2010

Я пытаюсь прочитать в 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 ]

6 голосов
/ 02 июня 2010

Сначала вам нужно require 'open-uri', чтобы иметь возможность open() удаленных путей.

См. документы для получения дополнительной информации.

2 голосов
/ 02 июня 2010

Вы должны использовать такую ​​утилиту, как Nokogiri, чтобы проанализировать возвращаемый контент, например:

(С главной страницы сайта Nokogiri @ 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...