scrapy框架程序运行成功,URL没有问题,却图片保存不了到本地,管道开启了,保存路径也写了,是怎么回事,查了两天了,都没有发现什么问题,代码也没有问题,网址也能正常提取!有没热心的网友帮助一下?
又看见张口就来的。
scrapy中就是用单独的Image管道来保存图片的。不需要open什么
这是我之前的代码,Pipeline
'''保存图片绝对路径,重命名图片'''
import os
from MGCWDSpider.settings import IMAGES_STORE as IMGS
from scrapy.pipelines.images import ImagesPipeline
from MGCWDSpider.items import Article
class DownloadImagesPipeline(ImagesPipeline):
def item_completed(self, results, item, info):
image_file_path = (IMGS + '\\' +'xxxx' + '.jpg') # 将路径保存在item中返回
item['image_path'] = image_file_path
return item
settings除了开启管道,其他的相关配置
IMAGES_URLS_FIELD ="fishPicId" #在items.py中配置的爬取得图片地址
project_dir = os.path.abspath(os.path.dirname(__file__)) #获取当前爬虫项目的绝对路径
IMAGES_STORE = os.path.join(project_dir,'images') #组装新的图片路径,设置图片存储目录
IMAGES_MIN_HEIGHT = 1 #设定下载图片的最小高度
IMAGES_MIN_WIDTH = 1 #设定下载图片的最小宽度
IMAGES_EXPIRES = 3 #设定3天内不下载重复图片
另外有些网站设置了防盗链接,在scrapy中需要在配置请求管道,设置一个referer
如果代码没问题,可能就是因为防盗链了
图片保存是open将图片写入文件里面的,你代码里面没有这个呢