Ruby 使用mechanize解析时获取指定数量的结果

Ruby 使用mechanize解析时获取指定数量的结果,ruby,nokogiri,mechanize-ruby,Ruby,Nokogiri,Mechanize Ruby,我正在解析CNN.com,以获得五大新闻商店的第一段。我有以下代码 url = "http://edition.cnn.com/?refresh=1" agent = Mechanize.new page = agent.get("http://edition.cnn.com/?refresh=1") page.search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a").map{|a| page.uri.merge a[:

我正在解析CNN.com,以获得五大新闻商店的第一段。我有以下代码

url = "http://edition.cnn.com/?refresh=1"
agent = Mechanize.new
page = agent.get("http://edition.cnn.com/?refresh=1")
page.search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a").map{|a|  page.uri.merge a[:href]}.each do |uri| 
 article = agent.get(uri).parser
 puts article.css(".adtag15090+ p").text
 puts "\n"
end

它不是完美的,但它可以工作,然而,它检索所有的文章,而我只想检索五篇文章。是否有一种方法可以使用范围将结果数限制为五个?

简单的方法是在
搜索之后添加一个数组切片。Nokogiri通过
搜索返回节点集,并且:

page.search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a")[0, 5]...