我有一些代码可以在eBay上提取优惠,但有几个结果页面,我只得到第一页的结果。如何循环浏览多个结果页面?
这是我的代码:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://www.ebay.de/sch/i.html?_nkw=Suzuki+DR+BIG&_sacat=131090&_odkw=Suzuki+DR+BIG&_osacat=0&_from=R40"
doc = Nokogiri::HTML(open(url))
doc.css(".dtl").each do |dtl|
puts dtl.at_css(".vip").text
end
答案 0 :(得分:3)
您必须通过从“下一步”按钮(检查页面,位于css .botpg-next a
)并加载它来链接每页的结果。
这样的事情:
url = "http://www.ebay.de/sch/i.html?_nkw=Suzuki+DR+BIG&_sacat=131090&_odkw=Suzuki+DR+BIG&_osacat=0&_from=R40"
while (url) do
doc = Nokogiri::HTML(open(url))
doc.css(".dtl").each do |dtl|
puts dtl.at_css(".vip").text
end
link = doc.css('.botpg-next a')
url = link && link[0]['href'] #=> url is nil if no link is found on the page
end
我只是循环,直到找不到“下一个”按钮,但您可以更改它以将循环限制为给定数量的结果。