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