Python Scrapy使用ImgsPipeline下载图片时指定iterm传参作为图片名称
- 在get_media_requests函数中提交请求链接img_url时,使用meta方法附加传参传入title——图片名称,图片名称由前面管道iterm迭代提交上来。
- 在file_path函数中使用request的meta方法取出参数,得到图片名称。
源码
'''参数说明
:item['title']: 向管道提交的图片名称
:item['img_url']: 向管道提交的图片链接
'''
class ImgsPipeline(ImagesPipeline):
def get_media_requests(self, item, info):
title = item['title'] + '.jpg'
yield scrapy.Request(item['img_url'], meta={
'title': title})
def file_path(self, request, response=None, info=None):
return request.meta['title']
def item_completed(self, results, item, info):
global count
print('{} -- 下载完成 第{}张'.format(item['title'], count))
count += 1
return item