一个单独的Nokogiri耙任务来刮取Groupon的所有交易



我想用Nokogiri刮Groupon的交易。我想在以下链接上获得所有这些交易:http://www.groupon.com/getaways?d=travel_countmein

最重要的是,我想访问每个单独的链接,并抓取标题和价格。从概念上讲,有没有一种方法可以对单个rake任务进行编码来实现这一点?

我知道需要有某种循环,但我不知道如何从主逃亡页面解析每笔交易的url。

我已经为标题和价格写了一个刮刀:

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。