文件命名¶默认文件命名¶默认情况下,文件使用 SHA-1 hash 文件名的URL。 例如,以下图像URL:: http://www.example.com/image.jpg
谁的 3afec3b4765f8f0a07b78f98c07b83f013567a0a
将使用您选择的内容下载并存储 storage method 和以下文件名: 3afec3b4765f8f0a07b78f98c07b83f013567a0a.jpg
自定义文件命名¶您可能希望对保存的文件使用不同的计算文件名。例如,通过在文件名中包含元来对图像进行分类。 通过重写 例如,具有图像URL::的图像管道 http://www.example.com/product/images/large/front/0000000004166
可以处理为具有压缩哈希的文件名和透视 00b08510e4_front.jpg
通过重写 import hashlib
from os.path import splitext
def file_path(self, request, response=None, info=None, *, item=None):
image_url_hash = hashlib.shake_256(request.url.encode()).hexdigest(5)
image_perspective = request.url.split('/')[-2]
image_filename = f'{image_url_hash}_{image_perspective}.jpg'
return image_filename
警告 如果您的自定义文件名方案依赖于在不同刮擦之间可能不同的元数据,则可能会导致使用新文件名意外重新下载现有介质。 例如,如果您的自定义文件名方案使用了产品标题,并且站点在抓取之间更改了项目的产品标题,则Scrapy将使用更新的文件名重新下载相同的媒体。 有关 |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-9-8 12:58 , Processed in 0.049051 second(s), 17 queries .