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
  • 相关阅读:
    cookie 保存信息 例子
    win7 远程桌面 不用域账户登录
    jfreechart demo 源代码 下载
    PostgreSQL学习手册(数据表)
    apache tomcat 伪静态 struts2 伪静态
    List methods
    DX 骨骼动画
    如何成为一名优秀的程序员?
    程序员改编游戏向女友求婚
    引用 病毒是怎么命名的?教你认识病毒命名规则
  • 原文地址:https://www.cnblogs.com/zengsf/p/10049270.html
Copyright © 2011-2022 走看看