首页 > Python:scrapy中使用ImagesPipeline下载图片问题

Python:scrapy中使用ImagesPipeline下载图片问题

运行环境

操作系统:windows7 64位
python:2.7.6 64位
scrapy:scrapy-0.22.2

问题描述

使用ImagesPipeline 下载图片的时候,已经在setting.py中指定了图片的保存地址:
IMAGES_STORE = 'image-downloaded/'
但是 运行的时候,在“image-downloaded”目录下却没看到图片。

源码在这里下载

在pipline文件中增加了image_key函数,代码如下:

def image_key(self, url):
        year,month = url.split('/')[-3],url.split('/')[-2]
        image_guid = hashlib.sha1(url).hexdigest()
        img_path = "%s/%s/%s" % (year,month,self.title)
        return '%s/%s.jpg' % (img_path, image_guid)

刚刚仔细检查了下cmd输出:发现有个错误:

IOError: decoder jpeg not available

这个应该是pillow(pil的替代品)的问题,于是卸载了pillow(命令:pip uninstall pillow),然后重新安装了(命令:pip install pillow),发现无法下载,于是在Python第三方windows模块安装包下载对应版本的pillow进行安装,重新启动爬虫,发现图片可以正常下载了。


Pipeline 里需要 image_key 返回文件名

【热门文章】
【热门文章】