Я так расстроен, пытаясь использовать Ruby для извлечения определенного URL-адреса.
Я пробовал много разных способов, таких как open-uri, стандартный запрос до сих пор не работал. Я всегда получаю пустой HTML. Я также пытался использовать python для получения того же URL-адреса, который всегда возвращал правильное HTML-содержимое.Я действительно не уверен, почему ... Пожалуйста, помогите, так как я новичок и в Ruby, и в Python ... Я хочу использовать Ruby (предпочитаю аккуратный синтаксис и удобные имена функций, проще устанавливать библиотеки с использованием gem и homebrew(на mac) чем python easy_install) но я сейчас рассматриваю Python, потому что он просто работает (но все еще пытаюсь разобраться с проблемами 2.x и 3.x).Я могу делать что-то действительно глупое, но я думаю, что это очень маловероятно.
ruby 1.9.2p136 (2010-12-25 revision 30365) [i386-darwin10.6.0]
Реализация 1:
url = URI.parse('http//:www.stackoverflow.com/') req = Net::HTTP::Get.new(url.path)
res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) }
puts res.body #empty
Реализация 2:
doc = Nokogiri::HTML(open("http//:www.stackoverflow.com/", "User-Agent" => "Safari"))
#empty
#I tried to use without user agent, without Nokogiri none worked.
Реализация Python, которая каждый раз работала идеально
f = urllib.urlopen("http//:www.stackoverflow.com/")
# Read from the object, storing the page's contents in 's'.
s = f.read()
f.close()
print s