如何在Scrapy 1.5中为每个项目设置IMAGES_STORE文件夹

时间:2018-04-09 11:51:50

标签: python image path scrapy

Scrapy 1.5允许设置IMAGES_STORE设置以存储所有下载的媒体,如documentation

中所述

我希望能够根据Item中的某些值为每个Item指定一个自定义文件夹。对Scrapy的内部结构不太了解,我不确定要覆盖哪些方法来实现这一目标。

我考虑过覆盖from_settings(cls, settings),但我还没有访问Item

有什么想法吗?

1 个答案:

答案 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)