scrapy下载文件
-
修改settings.py
FILES_STORE = 'examples_src' # 设置下载路径 ITEM_PIPELINES = { # 设置权重值,值数小,优先调用 'ListSpider.pipelines.DownloadFilePipeline': 1 }
-
修改items定义
import scrapy class BetsTableItem(scrapy.Item): file_urls = scrapy.Field() # 存放下载链接 files = scrapy.Field()# 存放文件内容
用于保存下载的内容信息。根据官方文档规定,默认保存下载文件信息的字段名为
files
-
修改pipelines.py
class DownloadFilePipeline(FilesPipeline): def file_path(self, request, response=None, info=None): folder = re.findall('=[0-9].*.wav', request.url) # 文件夹名 filename = re.findall('=[0-9].*.wav', request.url) # 文件名 return os.path.join(filename[0].lstrip('='))