图片管道 ImagePipeLine
需要从新写两个方法
保存图片别忘了在设置中设置图片保存的位置 IMAGES_STORE = “xxx”
def get_media_requests(self, item, info):passdef item_completed(self, results, item, info):return item# results 数据类型[(True,{'url': 'https://image1.ljcdn.com/110000-inspection/pc1_Kz21DStHD_1.jpg.296x216.jpg','path': 'full/4495a2b603444ec1ed1c2451c690d814fbb33afb.jpg','checksum': '3400355050afbbc17602f061ba1adba7'})]
import scrapyfrom scrapy.utils.project import get_project_settings # 获取设置的内容import osfrom scrapy.pipelines.images import ImagesPipelineimage_store = get_project_settings.get("IMAGES_STORE")class ImagePipeline(ImagesPipeline):def __ init__(self):# 定义初始化内容def get_media_requests(self, item, info):for url in item["image_urls]:yiled scrapy.Request(url)# 或者yiled scrapy.Request([ url for url in item["image_urls"]])# 或者url = item["iomage_url]yiled scrapy.Request(url)def item_completed(self, results, item, info):image_path = [x['path'] for status,x in results if status]os.rename(image_store+image[0],image_store+item['name']+".jpg")image_path = images_store+itme["name"] + ".jpg"imte['iamge_paths'] = image_storereturn item
注意:
setting中要配置图片的保存的位置
需要重写两个方法 可以自定义保存的路径
导入包 ImagePipeline get_project_setting
from scrapy.pipeline.image import ImagePipeline
from scrapy.utils.project import get_project_setting
