获得Nokogiri的网站标题

时间:2013-03-20 04:42:35

标签: ruby nokogiri

我正在尝试使用Nokogiri获取网站的标题(越南语):

enter image description here

# encoding: utf-8
require 'rubygems'
require 'nokogiri'
require 'open-uri'

page = Nokogiri::HTML(open("http://vnexpress.net"))   
list = page.css("a[class='link-topnews']")
puts list[0].text

但是它给出了错误:

undefined method `text' for nil:NilClass (NoMethodError)

奇怪的是,使用完全相同的代码,有时它确实起作用并给出正确的结果:

Triều Tiên dọa hành động với máy bay B-52 của Mỹ

即使在尝试获得标题时,也会出现同样的错误:

page = Nokogiri::HTML(open("http://vnexpress.net/"))   
list = page.css("title")
puts list[0].text

为什么表现如此?我做错了什么?

1 个答案:

答案 0 :(得分:1)

当你使用nokogiri时,他们的服务器似乎拒绝提供内容。我想,他们正在检查一些标题。您可以添加标题或使用Mechanize gem:

require 'mechanize'

agent = Mechanize.new
page = agent.get "http://vnexpress.net"
page.search("a.link-topnews").first.text

=> “TriềuTiêndọahànhđộngvớimáybayB-52củaMỹ”