如何更改保存图像的目录,scrapy

2024-04-25 02:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从网页上抓取图片。 我有几个图像列表:

list_1,list_2,list_3 

这些列表中的每一个对应于不同的类别,到目前为止,所有图像都保存在同一个目录中,该目录是在设置文件中指定的

^{pr2}$

我想将每个列表中的图像保存在不同的文件夹中。在


Tags: 文件图像目录文件夹网页列表图片类别
1条回答
网友
1楼 · 发布于 2024-04-25 02:28:39

答案是here和{a2}。在

基本上重写item_completed方法,并根据图像来自的列表包含图像保存位置的逻辑。在

def item_completed(self, results, item, info):

    for result in [x for ok, x in results if ok]:
        path = result['path']
        slug = slugify(item['designer'])


        settings = get_project_settings()
        storage = settings.get('IMAGES_STORE')

        target_path = os.path.join(storage, slug, os.path.basename(path))
        path = os.path.join(storage, path)

        # If path doesn't exist, it will be created
        if not os.path.exists(os.path.join(storage, slug)):
            os.makedirs(os.path.join(storage, slug))

        if not os.rename(path, target_path):
            raise DropItem("Could not move image to target folder")

    if self.IMAGES_RESULT_FIELD in item.fields:
        item[self.IMAGES_RESULT_FIELD] = [x for ok, x in results if ok]
    return item

相关问题 更多 >