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

2017-07-21 17:48:04 +08:00
 rebeccaMyKid

今天有个任务,就是一个订单要创建一个目录然后下载订单里商品的图片,那么问题来了,商品的图片 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

1656 次点击
所在节点    分享发现
3 条回复
27
2017-07-21 19:59:38 +08:00
不同 project 用不同套的 package:
virtualenv
bazingaterry
2017-07-21 20:17:20 +08:00
用 requests 库会阻塞整个进程...
rebeccaMyKid
2017-07-24 09:21:49 +08:00
@bazingaterry 没关系啊,不差这点效率

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/377054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX