/ / Нокогірі - результати нарізки - рубін, синтаксичний розбір, вишкрібання екрана, нокогірі, зріз

Нокогірі - нарізання результатів - рубін, синтаксичний аналіз, екран-скребком, нугаторі, шматочок

Я будую скрепер, щоб витягувати історії з новинних сайтів. Ось приклад із сайту новин 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, і це не дуже пояснювально.

Відповіді:

2 для відповіді № 1

Це не проблема 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