我想 使用 x-path从网站http://www.jabong.com/Puma-Wirko-Ind-Black-Sneakers-187839.html提取图像:
item['pimg'] = hxs.select('//*[@id="wrapper"]/div[2]/div[1]/div[3]/div[1]/ul/li[1]/img').extract()
我正在获取文本值。我想知道如何存储图像。请帮忙。
我想 使用 x-path从网站http://www.jabong.com/Puma-Wirko-Ind-Black-Sneakers-187839.html提取图像:
item['pimg'] = hxs.select('//*[@id="wrapper"]/div[2]/div[1]/div[3]/div[1]/ul/li[1]/img').extract()
我正在获取文本值。我想知道如何存储图像。请帮忙。
item['pimg'] = hxs.select('//*[@id="wrapper"]/div[2]/div[1]/div[3]/div[1]/ul/li[1]/img').extract()
counter = 0
for image_data in item['pimg']:
with open('image_' + str(counter) + '.jpg', 'wb') as fh:
fh.write(image_data)
counter += 1
假设item['pimg']
包含列表格式的图像字符串,并且您可以使用文件命名。
简短的回答:使用图像管道:http ://doc.scrapy.org/en/latest/topics/images.html
但请记住,该image_urls
字段必须具有完全限定的 URL 列表。所以,你应该使用类似的东西
from urlparse import urljoin
# ... this in your callback method
item['image_urls'] = []
for img in hxs.select('//img'): # change the xpath to suit your needs
# img is a selector object, select() always returns a list,
# this might raise the exception IndexError in case the img element
# does not have a src attribute.
path = img.select('@src').extract()[0]
item['image_urls'].append(urljoin(response.url, path))
如果您按照文档中的示例进行操作,该字段images
将包含每个图像的元数据:校验和、路径、url。