0

我正在构建一个刮板来从新闻网站中提取故事。以下是来自 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 文档,但解释性不是很好。

4

1 回答 1

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

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

doc.css('h2 a.story')[3..7].each do |h2|
  puts "#{h2.content} - http://www.bbc.co.uk#{h2["href"]}"
end
于 2012-10-09T09:44:31.067 回答