利用野村刮集团交易



我正在遵循Nokogiri railscast为Groupon编写一个scraper。当我运行rb文件时,我不断地得到以下错误。

Flamingo Conference Resort and Spa Deal of the Day | Groupon Napa / Sonoma
traveldeal_scrape.rb:9:in `block in <main>': undefined method `text' for 
nil:NilClass (NoMethodError)

这是我的刮削锉。

require 'rubygems'
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))
puts doc.at_css("#content//h2/a").text
title = doc.at_css("#content//h2/a").text
price = doc.at_css("#amount").text[/[0-9.]+/]
puts "#{title} - #{price}"
puts doc.at_css(".deal")[:href]

编辑:上面的代码现在有效!

我使用了与教程完全相同的rubular表达式。我也不确定我的CSS标签是否正确。谢谢

我想你有一个疏忽:

doc.css(".deal").each do |deal|
  title = item.at_css("#content//a").text
  price = item.at_css("#amount").text[/[0-9.]+/]
  puts "#{title} - #{price}"
  puts item.at_css(".deal")[:href]
end

应为:

doc.css(".deal").each do |deal|
  title = deal.at_css("#content//a").text
  price = deal.at_css("#amount").text[/[0-9.]+/]
  puts "#{title} - #{price}"
  puts deal.at_css(".deal")[:href]
end

正则表达式的问题是它缺少您试图转义的美元符号:.text[/$[0-9.]+/]

相关内容

  • 没有找到相关文章

最新更新