我正在建立一个刮刀来从新闻网站中提取故事。以下是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文档,但不是很清楚。
答案 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