如何从Amazon ItemSearch/ItemLookup获得销售排名

Cod*_*bat 2 ruby api amazon ruby-on-rails ruby-on-rails-3

我正试图从亚马逊产品广告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"}
Run Code Online (Sandbox Code Playgroud)

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

Sea*_*ean 6

我只想和Nokogiri一起刮掉这个.

例如,在irb中输入以下内容以查看:

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

当然,您需要将B000YYODLO更改为您正在搜索的任何ASIN.除非您正在寻找咖啡新闻的销售排名,否则我会立即回答两个问题.

此外,CSS选择器#SalesRank拉出整行,你可以像我一样使用正则表达式来解析你需要的任何东西.

另外,由于我不熟悉你正在使用的api,你可能想查看它是否使用css选择器,因为你可能只需要将SalesRank更改为#SalesRank.

我希望这有帮助.