使用Amazon产品广告API-Python搜索书籍

使用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根据我找到的

tl;dr:我正在使用Python的Amazon产品广告API。如何对一本书进行关键字搜索,并获得包含每个条目的标题、ISBN和价格的XML结果

详细版本:

我在一个网站上使用Python,该网站允许用户从不同的网站(如eBay和Amazon)搜索教科书。基本上,我需要从其中一个网站的一组搜索结果中获取简单的信息,例如标题、ISBN和每个项目的价格。然后,我可以根据需要在应用程序中存储和格式化这些信息(例如,显示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)提供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