2013-05-01 143 views
6

tl; dr:我正在使用Amazon產品廣告API和Python。我怎樣才能做一本書的關鍵詞搜索,並獲得每個條目包含TITLE,ISBN和PRICE的XML結果?使用亞馬遜產品廣告API搜索圖書 - Python

詳細的版本:

我在Python工作的一個網站,允許用戶搜索來自不同的網站,如eBay和亞馬遜的教科書。基本上,我需要從其中一個站點的一組搜索結果中獲取簡單信息,例如標題,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() 
    ... 

...然後我分析這與minidom命名。

在亞馬遜的情況下,它似乎並不那麼容易。我以爲我會開始尋找一個簡單的包裝。但是他們的開發者網站似乎沒有提供我感興趣的產品廣告API的產品廣告API。我試過的一個,來自https://pypi.python.org/pypi/python-amazon-product-api/的python-amazon-product-api 0.2.5,給了我一些可能不值得花時間查看的安裝問題(但也許我只是被激怒了......)。我也環顧四周,發現pyaws和pyecs,但這些似乎使用不推薦使用的身份驗證機制。

然後我想我會只是嘗試從頭開始構建的URL像我一樣在eBay工作。但是亞馬遜需要在URL中加上一個時間戳,我想我可以用程序化的方式來構建(也許像這些人一樣,他們整個9碼的簽名是:https://forums.aws.amazon.com/thread.jspa?threadID=10048)。

即使這樣做(我懷疑會發生,考慮到物流給出的挫折數量迄今爲止),底線是我想要的名稱,價格和ISBN搜索的書籍。我能夠通過API網站上的教程生成示例URL,然後查看確實包含標題和ISBN的XML結果。但沒有價格!爾加!經過一些絕望的谷歌搜索後,對URL進行了一些修改(增加了& ResponseGroup = Offers和& MerchantID = All),但是沒有標題。 (我想我還有另一個問題,那麼,我可以在哪裏找到可能的ResponseGroup參數的索引?)

總的來說,正如你所看到的,我真的沒有一個可靠的方法。構建一個網址的方式是一種體面的方式,還是會比它值得更多的麻煩?頂部的tl; dr可能是整體問題的更好表示。

+1

我之前沒有聽說過產品廣告API - 這很有趣!我無法幫助您解決所有問題,但以下是響應組的官方列表http://docs.aws.amazon.com/AWSECommerceService/latest/DG/CHAP_ResponseGroupsList.html – Qanthelas 2013-05-01 23:43:49

回答

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

如果你有蟒蛇,亞馬遜產品的API的安裝問題,請發送細節的郵件列表,你會得到幫助。

相關問題