使用Nokogiri和Mechanize获取,访问和限制链接数量?

时间:2014-02-26 23:10:26

标签: ruby nokogiri mechanize-ruby

我正试图从CNN.com上抓下五个最新的故事并检索他们的链接以及每个故事的第一段。我有这个简单的脚本:

url = "http://edition.cnn.com/?refresh=1"
agent = Mechanize.new
agent.get("http://edition.cnn.com/?refresh=1").search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a").each do |headline| 
 article = headline.text
 link = URI.join(url, headline[:href]).to_s
 page = headline.click(link)
 paragraph1 = page.at_css(".adtag15090+ p").text
 puts "#{article}"
 puts "#{link}"
 puts "#{paragraph1}"
 puts "\n"
end

此代码无效,因为无法识别click方法。它会带来这个错误:

cnn_scraper.rb:10:in `block in <main>': undefined method `click' for #<Nokogiri:
:XML::Element:0x2c49b40> (NoMethodError)

CNN.com上所有文章的第一段都有选择器.adtag15090+ p。还要注意它正在解析所有文章,但我只想要五个。关于如何使用Nokogiri和Mechanize获得前五个及其第一段的任何想法?

0 个答案:

没有答案