Scrapy学习-5-下载图片实例

1. 在项目下创建一个images文件用于存放图片
2. 载图片相关模块
1 pip install pillow
3.修改配置文件,激活pipelines
ITEM_PIPELINES = {
    'ArticleSpider.pipelines.ArticlespiderPipeline': 300,
    'scrapy.pipelines.images.ArticleImagePipeline': 1,
}

IMAGES_URLS_FIELD = 'front_image_url'

import os

PROJECT_DIR = os.path.abspath(os.path.dirname(__file__))

IMAGES_STORE = os.path.join(PROJECT_DIR, 'images')

# 过滤图片大小

IMAGES_MIN_HEIGHT = 100

IMAGES_MIN_WIDTH = 100

 

注意
  images默认被当做列表处理,所以item在赋值时,要使用 [ image_name ] 接收

4.在保存图片的时候我们可以顺便保存图片路径,以便下次获取

# 自定制一个pipelines

# 添加一个class

from scrapy.pipelines.images import ImagesPipeline

class ArticleImagePipeline(ImagesPipeline):
    
    def item_completed(self, results, item, info):
        
        for res, value in results:

            image_path = value['path']

            item['front_image_path'] = image_path

        # 处理完成路径需要将item返回,因为在settings中,配置的了优先级,该pipelines可以将items继续传递给下一个pipelines中

        return item 

 

 

posted @ 2018-05-17 21:11  前路~  阅读(146)  评论(0编辑  收藏  举报