我正在按照Nokogiri railscast为Groupon写一个刮板程序。当我运行我的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]编辑:上面的代码现在可以工作了!
我使用了与本教程完全相同的环形表达式。我也不确定我的CSS标签是否正确。谢谢!
发布于 2012-03-20 07:24:01
我想你有个疏忽:
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发布于 2012-03-20 07:50:40
您的正则表达式的问题在于它缺少您试图转义的美元符号:.text[/\$[0-9\.]+/]
https://stackoverflow.com/questions/9779375
复制相似问题