我想使用Nokogiri抓取Groupon交易。我想在以下链接中抓取所有这些交易:http://www.groupon.com/getaways?d=travel_countmein
最重要的是,我想访问每个单独的链接,并刮取标题和价格。从概念上讲,有没有办法编写一个单独的瑞克任务来做到这一点?
我知道必须要有某种循环,但我不知道如何从逍遥游的主要页面解析每个交易的网址。
我已经为标题和价格写了一个刮板:
task :fetch_travel => :environment do
require 'nokogiri'
require 'open-uri'
url = "http://www.groupon.com/deals/ga-flamingo-conferences-resort-spa?c=all&p=0"
doc = Nokogiri::HTML(open(url))
title = doc.at_css("#content//h2/a").text
price = doc.at_css("#amount").text[/[0-9\.]+/]
link = doc.at_css("#content//h2/a")[:href]
desc = doc.at_css(".descriptor").text
Traveldeal.create(:title => title, :price => price, :url => link, :description => desc)
end
发现这需要嵌套循环,其中内部循环是上面的代码,而外部循环将解析要在内部循环中使用的url的每笔交易。