zoukankan      html  css  js  c++  java
  • 利用scrapy下载图片保存到本地

    1.先声明一下,起始位置已经是将所有的图片链接都能到pipelines.py中

    2.创建一个类,继承于ImagesPipeline,因此也就需要导入ImagesPipeline

    from scrapy.pipelines.images import ImagesPipeline

    3.由于继承自ImagesPipeline类,且该类下有一个get_media_requests方法需要被重写

    def get_media_requests(self, item, info):

    4.由于是通过链接来获取图片,就少不了scrapy.Request(图片链接)这个方法

    import scrapy

    5.向图片链接发请求后得到的响应会保存到settings.py中的IMAGES_STORE路径中,因此要去配置一下settings.py,

    IMAGES_STORE = "/home/zengsf/spider/Douyu/Douyu/Images"

    6.别忘了你创建的pipelines.py中的类需要在settings.py中的ITEM_PIPELINES中添加

    ITEM_PIPELINES = {
        # 'Douyu.pipelines.DouyuPipeline': 300,
        'Douyu.pipelines.DouyuImagePipline': 200,
    }

    所有代码:

    from scrapy.pipelines.images import ImagesPipeline
    import scrapy
    
    
    class DouyuPipeline(object):
        def process_item(self, item, spider):
            # 可以写存储数据库逻辑
            return item
    
    
    class DouyuImagePipline(ImagesPipeline):
        # 此方法不能变
        def get_media_requests(self, item, info):
            # 1 获取图片链接
            imageLink = item["imgLink"]
            # 2 向图片链接发请求,响应会保存在settings.py中的IMAGES_STORE路径中
            yield scrapy.Request(imageLink)
            return item
  • 相关阅读:
    将博客搬至CSDN
    规范化设计的范式的个人理解
    Codeforces Round #422 (Div. 2) D题要补的知识点
    Codeforces第一次rated比赛
    Codeforces 818B Permutation Game
    USACO Dynamic Programming (1)
    关于数据库中除法的一个小问题
    USACO hamming
    USACO Healthy Holsteins
    USACO Sorting a Three-Valued Sequence
  • 原文地址:https://www.cnblogs.com/zengsf/p/10049270.html
Copyright © 2011-2022 走看看