单一的Nokogiri耙子任务刮掉所有Groupon交易?

时间:2012-03-20 04:48:09

标签: ruby-on-rails ruby-on-rails-3 nokogiri

我想使用Nokogiri来削减Groupon的交易。我想通过以下链接获取所有这些优惠: http://www.groupon.com/getaways?d=travel_countmein

最重要的是,我想访问每个链接并刮掉标题和价格。从概念上讲,有没有办法编写单个rake任务来执行此操作?

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

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

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

1 个答案:

答案 0 :(得分:0)

想出这需要嵌套循环,其中内部循环是上面的代码,外部循环将解析每个交易,以便在内部循环中使用url。