К сожалению, full
суффикс к пути жестко закодирован в конвейере:
# from scrapy 1.5.1 source code
def file_path(self, request, response=None, info=None):
...
image_guid = hashlib.sha1(to_bytes(url)).hexdigest()
return 'full/%s.jpg' % (image_guid)
Однако вы можете исправить это, расширив ImagesPipeline
как свой собственный, создавая файл myproject/pipelines.py
:
class RootImagesPipeline(ImagesPipeline):
"""changes /full/ path to root"""
def file_path(self, request, response=None, info=None):
"""This is the method used to determine file path"""
path = super().file_path(request, response, info)
return path.replace('full/', '')
и активируйте его вместо конвейера scrapy в вашем settings.py
:
ITEM_PIPELINES = {
'myproject.pipelines.RootImagesPipeline': 1000
}