我想使用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()
我正在获取文本值。我想知道如何存储图像。请帮忙。
答案 0 :(得分:0)
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']
包含列表格式的图像字符串,并且您可以使用文件命名。
答案 1 :(得分:0)
简答:使用图片管道:http://doc.scrapy.org/en/latest/topics/images.html
但请记住,image_urls
字段必须包含完全限定的网址列表。所以,你应该使用像
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
将包含每个图像的元数据:校验和,路径,网址。