Scrapy 1.5允许设置IMAGES_STORE
设置以存储所有下载的媒体,如documentation
我希望能够根据Item
中的某些值为每个Item
指定一个自定义文件夹。对Scrapy的内部结构不太了解,我不确定要覆盖哪些方法来实现这一目标。
我考虑过覆盖from_settings(cls, settings),但我还没有访问Item
。
有什么想法吗?
答案 0 :(得分:0)
我通过覆盖file_path
方法解决了这个问题。所以在IMAGES_STORE
我有基本路径,然后我从file_path
控制变量部分。像下面的东西。但是我首先输了一个拼写错误而scrapy
默默地忽略它而不打印任何错误,即使在调试中......我不知道为什么?因此,最好从一个简单的字符串开始进行测试。
def file_path(self, request, response=None, info=None):
url = request.url
image_guid = hashlib.sha1(to_bytes(url)).hexdigest()
return '%s/full/%s.jpg' % ('my_custom_path', image_guid)