ruby-on-rails - 如何从 Amazon ItemSearch/ItemLookup 获取销售排名

标签 ruby-on-rails ruby ruby-on-rails-3 api amazon

我正在尝试从亚马逊产品广告 API 获取销售排名。我正在使用 amazon_product gem 。

request = AmazonProduct["us"]

request.configure do |c|
  c.key    = AMAZON_KEY
  c.secret = AMAZON_SECRET
  c.tag    = TAG
end

#itemlookup
response = request.find('B003XU6H8I', :response_group => 'SalesRank')
response.find('Item').first
=> {"ASIN"=>"B003XU6H8I"}

为什么 API 没有返回该商品的销售排名?此外,我尝试通过项目搜索获取 SalesRank 响应组,但没有返回它们。这是 API 的问题吗?

最佳答案

我会用 Nokogiri 删除它。

比如在irb中输入以下内容可以看到:

require 'nokogiri'
require 'open-uri'
website = 'http://www.amazon.com/dp/B000YYODLO'
doc = Nokogiri::HTML(open(website))
puts doc.css('#SalesRank').text[/\#.*\)/]

当然,您需要将 B000YYODLO 更改为您要抓取的任何 ASIN。除非您正在寻找咖啡机的销售排名,否则我一次回答了两个问题。

此外,CSS 选择器#SalesRank 会拉出整行,您可以像我一样使用正则表达式来解析您需要的任何内容。

此外,由于我不熟悉您正在使用的 API,您可能需要仔细查看它们是否使用了 css 选择器,因为您可能只需要将 SalesRank 更改为#SalesRank。

希望对您有所帮助。

关于ruby-on-rails - 如何从 Amazon ItemSearch/ItemLookup 获取销售排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7060830/

相关文章:

ruby-on-rails - 了解 Ruby/Rails 中的 block

ruby-on-rails - Rails has_many :through saving additional fields

ruby-on-rails - 未定义的方法和错误的序列化以及 lion 上的延迟作业

android - 无法运行示例 rhodes 应用程序

ruby-on-rails - has_and_belongs_to_many 关联不起作用

ruby-on-rails - 使用 role_model 和 Factory_Girl(用于规范测试),如何正确地将用户设置为管理员?

ruby-on-rails - 远程模型回调 - Rails 3?

ruby-on-rails - 值得关注的 RSpec 匿名 Controller

ruby-on-rails - Rails 丰富的关联

ruby - 这里是新手,还有其他问题