使用媒体管道(Media Pipleline)
使用媒体通道,必须在项目的settings.py文件中,设置:
对于Images Pipeline,设置为
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1}
对于Files Pipeline,设置为
ITEM_PIPELINES = {'scrapy.pipelines.files.FilesPipeline': 1}
【注意:我们可同时使用Images Pipeline和Files Pipeline】
确保一个有效的保存下载的文件或者图片的路径,否则即使设置了ITEM_PIPELINES,也不可用。
对于Images Pipeline,设置IMAGES_STORE:
IMAGES_STORE = '/path/to/valid/dir'
对于Files Pipeline,设置FILES_STORE:
FILES_STORE = '/path/to/valid/dir'
支持的存储
其他的特征
生成图片缩略图
Images Pipeline能为下载的图片自动生成缩略图,为了使用这个特性。我们必须设置字典类型IMAGE_THUMBS,
例如:
IMAGES_THUMBS = {
'small':(50,50),
'big':(270,270),
}
当用这个特性时,Images Pipeline将用规定的每一种尺寸生成缩率图,格式如下:
<IMAGES_STORE>/thumbs/<size_name>/<image_id>.jpg
这里:
<IMAGES_STORE>是指在settings 文件中设置的IMAGES_STORE 路径
<size_name>是指IMAGES_THUMBS的字典的键值
<image_id>是image url的SHA1 hash
例如:
<IMAGES_STORE>/full/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg
<IMAGES_STORE>/thumbs/small/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg
<IMAGES_STORE>/thumbs/big/63bbfea82b8880ed33cdb762aa11fab722a90a24.jpg
过滤小图片
当我们用Images Pipeline时,通过声明可允许的最小尺寸(设置IMAGES_MIN_HEIGHT和
IMAGES_MIN_WIDTH),过滤太小的图片。
例如:
IMAGE_MIN_HEIGHT = 110
IMAGE_MIN_WIDTH = 110
注意:这些尺寸的限制不会影响缩略图生成
默认情况下,没有限制,所有的图片都会被处理。