首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Amazon Product Advertising API - Python搜索书籍

使用Amazon Product Advertising API - Python搜索书籍
EN

Stack Overflow用户
提问于 2013-05-02 07:27:00
回答 2查看 4K关注 0票数 6

我正在Python中使用Amazon Product Advertising API。如何对图书进行关键字搜索并获得包含每个条目的标题、ISBN和价格的XML结果?

详细版本:

我在Python的一个网站上工作,允许用户从不同的网站搜索教科书,如eBay和亚马逊。基本上,我需要从这些网站的一组搜索结果中获取简单的信息,如标题、ISBNS和每种商品的价格。然后,我可以在应用程序中根据需要存储和格式化该信息(例如,显示HTML)。

在eBay的案例中,获取我需要的信息并不太难。我使用urllib2根据我找到的一个示例发出请求。我所需要的就是将一个特殊的安全密钥添加到URL:

代码语言:javascript
复制
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()
  ... 

我用...Then解析了这个。

在亚马逊的案例中,这似乎并不那么容易。我想我应该从寻找一个简单的包装器开始。但是他们的开发者站点似乎没有为我感兴趣的东西( Product Advertising API)提供python包装器。我已经尝试过了,来自https://pypi.python.org/pypi/python-amazon-product-api/的python-amazon-product-api 0.2.5,它给了我一些安装问题,这些问题可能不值得花时间去研究(但也许我只是被激怒了..)。我也查看了一下,发现了pyaws和pyecs,但它们似乎使用了不推荐使用的身份验证机制。

然后,我想我应该尝试从头开始构建URL,就像我对eBay所做的那样。但是亚马逊在URL中需要一个时间戳,我想我可以通过编程来构建它(也许就像这些人一样,他们使用签名:https://forums.aws.amazon.com/thread.jspa?threadID=10048)。

即使这样成功了(考虑到到目前为止物流给我带来的挫败感,我怀疑这种情况是否会发生),底线是我想要我搜索的图书的名称、价格和ISBN。我能够使用API网站上的教程生成一个示例URL,然后查看XML结果,其中确实包含标题和ISBN。但是没有价格!啊!经过一些绝望的谷歌搜索后,对网址进行了轻微的修改(添加了&ResponseGroup=Offers和&MerchantID=All),但随后没有标题。(我猜我还会有另一个问题,那就是在哪里可以找到可能的ResponseGroup参数的索引?)

总体而言,正如你所看到的,我真的没有一个可靠的方法论。构建-a-url方法是一种合适的方法,还是会带来比它更值得的麻烦?也许顶部的tl;dr更好地代表了整个问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 21:37:17

另一种方式可以是amazon-simple-product-api

代码语言:javascript
复制
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克隆并运行

代码语言:javascript
复制
sudo python setup.py install

希望这能有所帮助!

票数 6
EN

Stack Overflow用户

发布于 2013-06-22 04:06:11

如果您在使用python-amazon-product-api时遇到安装问题,请将详细信息发送到邮件列表,我们将为您提供帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16328040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档