爬虫scrapy:下载文件项目

1、创建项目和spider文件
2、设置url 然后测试
爬虫scrapy:下载文件项目_第1张图片
3、不行就需要改为False 爬虫scrapy:下载文件项目_第2张图片
4、获取标签链接和文件url
爬虫scrapy:下载文件项目_第3张图片
5、pipelines
配置:
爬虫scrapy:下载文件项目_第4张图片
配置会生成file文件夹
爬虫scrapy:下载文件项目_第5张图片
因为在父类中调用了
爬虫scrapy:下载文件项目_第6张图片
爬虫scrapy:下载文件项目_第7张图片
源码:

from scrapy.pipelines.files import FilesPipeline
from urllib.parse import urlparse
import os
class LoadfilePipeline(FilesPipeline):
    ##重新设置父类的方法
    def file_path(self, request, response=None, info=None):
        # urlparse方法可以对一个url进行拆分,拆分后其结果如下:
        path = urlparse(request.url).path  # 获取ss/cc/xx/aa.jpg中的xx
        print(request.url)   # https://matplotlib.org/examples/user_interfaces/toolmanager.py
        print(path)          #/examples/user_interfaces/toolmanager.py
        print(urlparse(request.url))
        #ParseResult(scheme='https', netloc='matplotlib.org', path='/mpl_examples/statistics/violinplot_demo.py', params='', query='', fragment='')
        # 把存储文件路径设置为xx文件夹,aa.jpg文件
        return os.path.join(os.path.basename(os.path.dirname(path)), os.path.basename(path))  # /animation/histogram.py

        # path = ss/cc/xx/aa.jpg
        # basename(path) 就是 aa.jpg
        # dirname(path)  ss/cc/xx
        # oin(basename(dirname(path))  就是 xx

你可能感兴趣的:(爬虫scrapy:下载文件项目)