2013-05-01 9 views
6

tl; dr:PythonでAmazon Product Advertising APIを使用しています。書籍のキーワード検索を行い、各エントリのタイトル、ISBN、およびPRICEを含むXML結果を取得するにはどうすればよいですか?Amazon Product Advertising APIで書籍を検索する - Python

冗長バージョン:

私は、ユーザーがそのようなイーベイやアマゾンなどの異なるサイトからの教科書を検索することができ、ウェブサイト上のPythonで働いています。基本的には、タイトル、ISBNS、価格などの簡単な情報を各サイトの検索結果から取得する必要があります。次に、アプリケーションに必要に応じてその情報を保存し、フォーマットすることができます(たとえば、HTMLの表示)。

eBayのケースでは、私が必要とした情報を得ることはあまり難しくありませんでした。私はurllib2を使って、見つけたサンプルに基づいてリクエストを出しました。私が必要としたのは、URLに追加する特別なセキュリティキーでした。

def ebaySearch(keywords): #keywords is a list of strings, e.g. ['moby', 'dick'] 

    #findItemsAdvanced allows category filter -- 267 is books 
    #Of course, I replaced my security appname in the example below 

    url = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsAdvanced&SERVICE-NAME=FindingService&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=[MY-APPNAME]&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&categoryId=267&keywords=" 

    #Complete the url... 
    numKeywords = len(keywords) 
    for k in range(0, numKeywords-1): 
    url += keywords[k] 
    url += "%20" 

    #There should not be %20 after last keyword 
    url += keywords[numKeywords-1] 

    request = urllib2.Request(url) 
    response = urllib2.urlopen(request) #file like thing (due to library conversion) 

    xml_response = response.read() 
    ... 

...私はこれをミニドームで解析しました。

Amazonの場合、それほど簡単ではないようです。私は簡単なラッパーを探し始めることから始めると思った。しかし、彼らの開発サイトは、私が興味を持っている製品のPythonラッパー(Product Advertising API)を提供していないようです。私が試した1つは、python-amazon-product-api 0.2.5からhttps://pypi.python.org/pypi/python-amazon-product-api/までです。私は、調べる時間の価値がないかもしれないインストールの問題を私に与えています(しかし、おそらく私は怒っています)。私も周りを見回し、pyawsとpyecsが見つかりましたが、これらは廃止された認証メカニズムを使用するようです。

私はeBayのためにしたように、最初からURLを構築しようとしていると考えました。しかし、アマゾンはURLにタイムスタンプを必要とします。これはプログラムで構築することができると思います(おそらく、これらの人々のように、署名で9ヤード全体を移動します:https://forums.aws.amazon.com/thread.jspa?threadID=10048)。

私が検索した本の名前、価格、ISBNが必要なことは結論が出ています。私は、API WebサイトでチュートリアルのサンプルURLを生成してから、実際にタイトルとISBNを含むXMLの結果を見ることができました。しかし、価格はありません!ガー!いくつかのGoogle検索では、URLを若干修正して(& ResponseGroup = Offersと& MerchantID =すべてを追加して)トリックを行いましたが、タイトルはありませんでした。 (可能性のあるResponseGroupパラメータのインデックスは、どこで見つけることができるのでしょうか?さらに質問してください)

全体的に見てわかるように、私は本当にこれについて確かな方法を持っていません。コンストラクションURLのアプローチは適切な方法ですか、それは価値があるよりももっと難しいでしょうか?たぶんトップのdrは、全体的な質問のより良い表現です。

+1

以前はプロダクト広告APIについて聞いたことがありませんでした。私はあなたの全質問を手助けすることはできませんが、回答グループの正式なリストはhttp://docs.aws.amazon.com/AWSECommerceService/latest/DG/CHAP_ResponseGroupsList.htmlです – Qanthelas

答えて

6

もう一つの方法は、amazon-simple-product-api次のようになります。

from amazon.api import AmazonAPI 
amazon = AmazonAPI(ACCESS_KEY, SECRET, ASSOC) 
results = amazon.search(Keywords = "book name", SearchIndex = "Books") 
for item in results: 
    print item.title, item.isbn, item.price_and_currency 

、githubのからわずかのクローンをインストールし、

sudo python setup.py install 

希望を実行するにはこのことができます!

0

python-amazon-product-apiのインストールに問題がある場合は、メーリングリストに詳細を送ってください。そうすれば助けになります。

関連する問題