使用Amazon产品广告API-Python搜索书籍
tl;dr:我正在使用Python的Amazon产品广告API。如何对一本书进行关键字搜索,并获得包含每个条目的标题、ISBN和价格的XML结果 详细版本: 我在一个网站上使用Python,该网站允许用户从不同的网站(如eBay和Amazon)搜索教科书。基本上,我需要从其中一个网站的一组搜索结果中获取简单的信息,例如标题、ISBN和每个项目的价格。然后,我可以根据需要在应用程序中存储和格式化这些信息(例如,显示HTML) 就eBay而言,获取我需要的信息并不难。我使用使用Amazon产品广告API-Python搜索书籍,python,amazon-web-services,httpwebrequest,amazon,Python,Amazon Web Services,Httpwebrequest,Amazon,tl;dr:我正在使用Python的Amazon产品广告API。如何对一本书进行关键字搜索,并获得包含每个条目的标题、ISBN和价格的XML结果 详细版本: 我在一个网站上使用Python,该网站允许用户从不同的网站(如eBay和Amazon)搜索教科书。基本上,我需要从其中一个网站的一组搜索结果中获取简单的信息,例如标题、ISBN和每个项目的价格。然后,我可以根据需要在应用程序中存储和格式化这些信息(例如,显示HTML) 就eBay而言,获取我需要的信息并不难。我使用urllib2根据我找到的
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)提供python包装。我曾经尝试过的python amazon产品api 0.2.5,给了我一些安装问题,这些问题可能不值得花时间去研究(但可能我只是恼火了…)。我也四处查看,发现了pyaws和Pyec,但它们似乎使用了不推荐使用的身份验证机制
然后我想我应该像在eBay上那样从头开始构建URL。但是Amazon要求URL中有一个时间戳,我想我可以通过编程来构造它(也许类似于这些人,他们用签名走了整整9码:)
即使这样做有效(考虑到目前为止物流部门给我带来的挫折感,我怀疑这种情况是否会发生),底线是我想要我搜索的书籍的名称、价格和ISBN。我能够通过API网站上的教程生成一个示例URL,然后看到XML结果,其中确实包含标题和ISBN。但是没有价格!啊!在一些绝望的谷歌搜索之后,对URL稍加修改(添加&ResponseGroup=Offers和&MerchantID=All)就成功了,但是没有标题。(我想我还有一个问题,那就是在哪里可以找到可能的ResponseGroup参数的索引?)
总的来说,正如你所看到的,我真的没有一个可靠的方法。构建url方法是一种体面的方式,还是会带来更多的麻烦?也许是tl;顶部的dr更能代表整个问题 如果您有python amazon产品api的安装问题,请将详细信息发送到邮件列表,您将得到帮助。另一种方法可能是: 要安装,只需从github克隆并运行
sudo python setup.py install
希望这有帮助 我以前从未听说过产品广告API——这很有趣!我不能帮你回答整个问题,但这里有一份正式的回应小组名单
sudo python setup.py install