Nokogiri - 切片结果

时间:2012-10-09 09:38:35

标签: ruby parsing screen-scraping nokogiri slice

我正在建立一个刮刀来从新闻网站中提取故事。以下是BBC新闻网站的一个例子:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://www.bbc.co.uk/news/'))

doc.css('h2 a.story').each do |h2|

        puts "#{h2.content} - http://www.bbc.co.uk#{h2["href"]}"
end

我需要做什么才能返回特定数量的结果,而不是全部结果?

我查看了Nokogiri文档,但不是很清楚。

1 个答案:

答案 0 :(得分:2)

这不是Nokogiri问题,这是一个Ruby数组问题。

使用take作为前三个结果:

doc.css('h2 a.story').take(3).each do |h2|
  puts "#{h2.content} - http://www.bbc.co.uk#{h2["href"]}"
end

对于第四到第八个结果,使用范围:

doc.css('h2 a.story')[3..7].each do |h2|
  puts "#{h2.content} - http://www.bbc.co.uk#{h2["href"]}"
end