官方文档说明
                在设置中找到ITEM_PIPELINES并加入以下代码
                
                  
                    
                      
                        1
  
                       | 
                      
                        scrapy.pipelines.images.ImagesPipeline: 301
  
                       | 
                    
                  
                 
                settings配置:
                图片存储路径:
                
                  
                    
                      
                        1
  
                       | 
                      
                        IMAGES_STORE = “your path”
  
                       | 
                    
                  
                 
                图片存储天数
                
                  
                
                设置缩略图(固定值):
                
                  
                    
                      
                        1 2 3 4
  
                       | 
                      
                        IMAGES_THUMBS = { 'small':(50,50) 'big':(270,270) }
 
                       | 
                    
                  
                 
                示例:
                
                  
                    
                      
                        1 2 3
  
                       | 
                      
                        # 配置图片管道参数 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) IMAGES_STORE = os.path.join(BASE_DIR,'images')
  
                       | 
                    
                  
                 
                
                  
                    
                      
                        
                          1 2 3 4 5 6 7 8
  
                         | 
                        
                          # 寻找此文件的父级目录 os.path.dirname()  # 当前脚本的绝对路径目录 os.path.abspath(__file__) # __file__当前脚本的名字 
  IMAGES_STORE = os.path.join(BASE_DIR,'images') 将BASE_DIR新增IMAGES文件夹路径
  
                         | 
                      
                    
                   
                
                设置spider中获取images_url的提取方法
                
                  
                    
                      
                        1 2 3
  
                       | 
                      
                        item['image_urls'] = "提取语法" # item['image_urls'] = response.css(".pic img:attr('src')").extract() item['images'] = [] # 【】中不需要填写,下载图片之后,保存本地的文件位置
  
                       | 
                    
                  
                 
                
                  使用ImagesPipeline下载图片时,需要使用images_urls字段,images_urls一般是可迭代的列表或元组类型
                
                如果遇到图片反扒请打开
                
                  
                    
                      
                        1 2 3 4 5
  
                       | 
                      
                        # DEFAULT_REQUEST_HEADERS = { #   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', #   'Accept-Language': 'en', #    "referer":"自行配置" # }
 
                       | 
                    
                  
                 
                存入MongoDB,示例代码
                
                  
                    
                      
                        1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
  
                       | 
                      
                         import pymongo from itemadapter import ItemAdapter
  class MongoPipeline:
      collection_name = 'scrapy_items'
      def __init__(self, mongo_uri, mongo_db):         self.mongo_uri = mongo_uri         self.mongo_db = mongo_db
      @classmethod     def from_crawler(cls, crawler):         return cls(             mongo_uri=crawler.settings.get('MONGO_URI'),             mongo_db=crawler.settings.get('MONGO_DATABASE', 'items')         )
      def open_spider(self, spider):         self.client = pymongo.MongoClient(self.mongo_uri)         self.db = self.client[self.mongo_db]
      def close_spider(self, spider):         self.client.close()
      def process_item(self, item, spider):         self.db[self.collection_name].insert_one(ItemAdapter(item).asdict())         return item
  
                       | 
                    
                  
                 
                更多详情请查阅官方文档:https://docs.scrapy.org/en/latest/topics/item-pipeline.html#take-screenshot-of-item