V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rebeccaMyKid
V2EX  ›  分享发现

[分享]Scrapy 下载相同 url 的(重复的)图片

  •  
  •   rebeccaMyKid · 2017-07-21 17:48:04 +08:00 · 1674 次点击
    这是一个创建于 2712 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天有个任务,就是一个订单要创建一个目录然后下载订单里商品的图片,那么问题来了,商品的图片 url 是有可能是重复的,下过一次这个框架就不下了,很头痛,修改了 pipeline 不行,添加dont_filter=True参数也不行,然后开始翻源码,最后看 stackoverflow 上一哥们的提示,才找到了 ImagePiplelines 的爸爸的爸爸,就是media.py里的MediaPipeline,注释了这_process_request里的几行,就能重复下载了。

     # Return cached result if request was already seen
            # if fp in info.downloaded:
            #     return defer_result(info.downloaded[fp]).addCallbacks(cb, eb)
            
    
     # Check if request is downloading right now to avoid doing it twice
            # if fp in info.downloading:
            #     return wad
    

    但这样做会有一个未捕获的 KeyError,好像也没影响到结果我就不管了。。。 源码是直接改的 site-packages 里的,老哥们还有更好的方法吗,能不同 project 用不同套的 package 么?

    最后做完的时候想了一下,“我特么怎么不引入 requests 库来下载图片就好了????“

    如果对你有帮助,那我很开心。:D

    3 条回复    2017-07-24 09:21:49 +08:00
    27
        1
    27  
       2017-07-21 19:59:38 +08:00   ❤️ 1
    不同 project 用不同套的 package:
    virtualenv
    bazingaterry
        2
    bazingaterry  
       2017-07-21 20:17:20 +08:00 via iPhone
    用 requests 库会阻塞整个进程...
    rebeccaMyKid
        3
    rebeccaMyKid  
    OP
       2017-07-24 09:21:49 +08:00
    @bazingaterry 没关系啊,不差这点效率
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:18 · PVG 18:18 · LAX 02:18 · JFK 05:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.