首页 > 解决方案 > 使用 Scrapy 中的文件管道下载后如何获取文件路径?

问题描述

我在 Scrapy 中使用 FilePipeline 下载文件。它下载成功,下面有一条消息。

{'file_urls': [u'https://avt.mkklcdnv3.com/avatar_225/3635-a_world_that_i_rule.jpg'], 
'files': 
   [{
            'checksum': '6eae71709357f85fba123165c6e64256',
             'path': 'full/7d821d27c3b718d9a24b36e8ab1ae0c0c2607eb8.jpg',
             'url': 'https://avt.mkklcdnv3.com/avatar_225/3635-a_world_that_i_rule.jpg'
   }]

}

我想获取“文件”中的“路径”以保存到我的数据库中。谢谢

标签: pythonscrapy

解决方案


保存的文件在path值中,在您的示例中'full/7d821d27c3b718d9a24b36e8ab1ae0c0c2607eb8.jpg'

如果要获取完整(绝对)路径,则需要使用os模块或pathlib

saved_file_path = files[0]['path']  # 'full/7d821d27c3b718d9a24b36e8ab1ae0c0c2607eb8.jpg'

import os
full_path = os.path.abspath(saved_file_path)

from pathlib import Path
full_path = Path(saved_file_path).absolute()

推荐阅读