我正在尝试从亚马逊产品广告 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/