使用scrapy 下载图片
首先定义的Item里面要含有
images_url 和images
2. 其次要在settings 里面加入
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline': 1}
3. 要设置你的文件存放的位置:
IMAGES_STORE = '/path/to/valid/dir'
4. IMAGES_EXPIRES就是多少天内不再下载这张图片
IMAGES_EXPIRES = 90
5.按尺寸过滤图片
IMAGES_MIN_HEIGHT = 110
IMAGES_MIN_WIDTH = 110
对于scrapy下载的图片,其图片名字是按照sha1 hash值生成的。如果要自定义这个名字,可以继承ImagesPipeline并重写file_path,
对于我的一个项目名字我是这样处理的:
把item['images_url'] = [] 然后里面是字典,字典是:src 是图片的url, name 是要存储图片的名字。
然后重写get_media_requests, 在里面获取src 和 name 。并把name放在meta里面。
然后file_path接收这个name ,返回一个文件名(图片名)