首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Nokogiri获取groupon交易

使用Nokogiri获取groupon交易
EN

Stack Overflow用户
提问于 2012-03-20 07:21:16
回答 2查看 474关注 0票数 1

我正在按照Nokogiri railscast为Groupon写一个刮板程序。当我运行我的rb文件时,我一直收到以下错误。

代码语言:javascript
复制
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)

这是我的擦除文件。

代码语言:javascript
复制
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标签是否正确。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-20 07:24:01

我想你有个疏忽:

代码语言:javascript
复制
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

应该是:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2012-03-20 07:50:40

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9779375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档