Python 从AmazonAPI获取所有图像URL
您可以使用以下代码获取amazon上某个特定项目的第一个图像URL:Python 从AmazonAPI获取所有图像URL,python,api,amazon,Python,Api,Amazon,您可以使用以下代码获取amazon上某个特定项目的第一个图像URL: from amazon.api import AmazonAPI amazon = AmazonAPI(aws_key='XXX', aws_secret='XXX', aws_associate_tag='XXX', region="DE") product = amazon.lookup(ItemId='B003P0ZB1K') print(product.large_image_url) 但是,如何才能访问该项目的所
from amazon.api import AmazonAPI
amazon = AmazonAPI(aws_key='XXX', aws_secret='XXX', aws_associate_tag='XXX', region="DE")
product = amazon.lookup(ItemId='B003P0ZB1K')
print(product.large_image_url)
但是,如何才能访问该项目的所有图像URL,而不是仅获取第一个?谢谢。您需要在请求中包含“图像”响应组
product=amazon.lookup(ItemId='B003P0ZB1K',ResponseGroup='Images')
然后可以通过images属性访问XML图像集列表,但需要使用XML解析器进行解析
product.images
请参阅本文,了解有关在python中解析XML的信息:
参考:
从库的源代码:
@property
def images(self):
"""List of images for a response.
When using lookup with RespnoseGroup 'Images', you'll get a
list of images. Parse them so they are returned in an easily
used list format.
:return:
A list of `ObjectifiedElement` images
"""
try:
images = [image for image in self._safe_get_element(
'ImageSets.ImageSet')]
except TypeError: # No images in this ResponseGroup
images = []
return images
图像集XML如下所示:
<ImageSets>
<ImageSet Category="primary">
<SwatchImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL30_.jpg</URL>
<Height Units="pixels">30</Height>
<Width Units="pixels">23</Width>
</SwatchImage>
<SmallImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">58</Width>
</SmallImage>
<ThumbnailImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">58</Width>
</ThumbnailImage>
<TinyImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL110_.jpg</URL>
<Height Units="pixels">110</Height>
<Width Units="pixels">86</Width>
</TinyImage>
<MediumImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL160_.jpg</URL>
<Height Units="pixels">160</Height>
<Width Units="pixels">124</Width>
</MediumImage>
<LargeImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L.jpg</URL>
<Height Units="pixels">500</Height>
<Width Units="pixels">389</Width>
</LargeImage>
</ImageSet>
</ImageSets>
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL30_.jpg
30
23
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg
75
58
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg
75
58
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL110_.jpg
110
86
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL160_.jpg
160
124
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L.jpg
500
389
您需要在请求中包含“图像”响应组
product=amazon.lookup(ItemId='B003P0ZB1K',ResponseGroup='Images')
然后可以通过images属性访问XML图像集列表,但需要使用XML解析器进行解析
product.images
请参阅本文,了解有关在python中解析XML的信息:
参考:
从库的源代码:
@property
def images(self):
"""List of images for a response.
When using lookup with RespnoseGroup 'Images', you'll get a
list of images. Parse them so they are returned in an easily
used list format.
:return:
A list of `ObjectifiedElement` images
"""
try:
images = [image for image in self._safe_get_element(
'ImageSets.ImageSet')]
except TypeError: # No images in this ResponseGroup
images = []
return images
图像集XML如下所示:
<ImageSets>
<ImageSet Category="primary">
<SwatchImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL30_.jpg</URL>
<Height Units="pixels">30</Height>
<Width Units="pixels">23</Width>
</SwatchImage>
<SmallImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">58</Width>
</SmallImage>
<ThumbnailImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg</URL>
<Height Units="pixels">75</Height>
<Width Units="pixels">58</Width>
</ThumbnailImage>
<TinyImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL110_.jpg</URL>
<Height Units="pixels">110</Height>
<Width Units="pixels">86</Width>
</TinyImage>
<MediumImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL160_.jpg</URL>
<Height Units="pixels">160</Height>
<Width Units="pixels">124</Width>
</MediumImage>
<LargeImage>
<URL>https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L.jpg</URL>
<Height Units="pixels">500</Height>
<Width Units="pixels">389</Width>
</LargeImage>
</ImageSet>
</ImageSets>
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL30_.jpg
30
23
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg
75
58
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL75_.jpg
75
58
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL110_.jpg
110
86
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L._SL160_.jpg
160
124
https://ecx.images-amazon.com/images/I/51YL4rlI%2B9L.jpg
500
389
谢谢,也试过了,但还是有问题。我没有得到图片URL,而是得到了某种参考<代码>[,]查看源代码,有一个属性@images将返回所有图像URL的列表,您应该可以使用:产品访问该属性。图像
我想我遗漏了一些东西。。。这就是我的代码:product=amazon.lookup(ItemId='B003P0ZB1K',ResponseGroup='Images')打印(product.Images)
。它会打印出我在上一篇评论中发布的参考文本。。。谢谢。你使用的是什么版本的amazon.api?另外,响应是元素对象的列表,这意味着来自AmazonAPI的XML响应没有被解析。Python 3.5.2:Python Amazon简单产品API 2.2.11谢谢,也尝试过了,但仍然存在问题。我没有得到图片URL,而是得到了某种参考<代码>[,]查看源代码,有一个属性@images将返回所有图像URL的列表,您应该可以使用:产品访问该属性。图像
我想我遗漏了一些东西。。。这就是我的代码:product=amazon.lookup(ItemId='B003P0ZB1K',ResponseGroup='Images')打印(product.Images)
。它会打印出我在上一篇评论中发布的参考文本。。。谢谢。你使用的是什么版本的amazon.api?另外,响应是元素对象的列表,这意味着来自AmazonAPI的XML响应没有被解析