2011-08-15 6 views
2

Amazonの広告広告APIから販売ランクを取得しようとしています。私はamazon_productの宝石を使用しています。Amazonからセールスランクを取得する方法ItemSearch/ItemLookup

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の問題ですか?

答えて

3

セールスランクは、ほとんど使用できません。私はアマゾンでいくつかのことをしてきました。彼らが私が探しているものがないときは、私はたいていそれをこすりました。

つまり、コード内で、Amazonの情報をスクラブして特定の商品を参照します。 http://www.amazon.com/dp/ [ASIN]を参照し、商品の詳細の下でランクを解析することができます。コードでは、必要な製品のリストから[ASIN]を置き換えてください。

私は、必要な特定の情報を簡単に取り出すために、セレンとワイアやワクチンのようなライブラリを使用しました。

5

これをノコギリで掻き集めるだけです。例えば

、見にIRBに次のように入力します。もちろん

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

を、あなたはASINは、あなたがのためにスクレーピングされているものは何でもであるものは何でもB000YYODLOを変更する必要があります。あなたがコーヒー・プレスの販売ランクを探しているのでなければ、私はすぐに2つの質問に答えました。

また、CSSセレクタ#SalesRankが行全体を引き出すので、必要なものを解析したようにregexを使用することができます。

また、私はapiに慣れていないので、SalesRankを#SalesRankに変更するだけでよいので、CSSセレクタを使用しているかどうかを調べることができます。

こちらがお役に立てば幸いです。

関連する問題