解决scrapy管道储存不了图片的问题

spider中的代码

 def parse(self, response):
        li_list=response.xpath('//*[@id="main"]/div/div[1]/ul/li')
        i=1
        for li in li_list:
            if i <4:
                src = li.xpath('./a/img/@src').extract_first()
                # print(div.xpath('./img/@style').extract())
                i += 1
                print(src)
                item = ImgsproItem()
                item['src'] = src
                yield item
            else:
                break

管道类中的代码:

from scrapy.pipelines.images import ImagesPipeline
import scrapy
class imgsPipeline(ImagesPipeline):
    print('kkkkk')
    # 根据图片地址进行图片数据请求
    def get_media_requests(self, item, info):
        yield scrapy.Request(item['src'])
    # 指定图片储存的路径
    def file_path(self, request, response=None, info=None, item=None):
        imgname=request.url.split('/')[-1]
        print(imgname)
        return imgname
    # 还会给下一个即将执行的管道类
    def item_completed(self, results, item, info):
        return item

运行结果:

管道类重写的方法没有执行

在setting中设置:

LOG_LEVEL='WARNING'

然后在运行一下(原来项目运行结果也这样):

 显示警告:

WARNING: Disabled imgsPipeline: ImagesPipeline requires installing Pillow 4.0.0 or later

我更新了Pillow模块,然后运行,但还是显示这个

尝试了了好多博主的方法,还是没有解决,然后我就试着创建了新的项目,配置新的虚拟环境

解决办法:

方法一:
我新建了个项目,配置了新的虚拟环境,然后把这个项目在新环境中打开显示的还有那个警告

然后我试着把Pillow卸载重装,运行没报错了

 方法二:

直接在命令行使用命令:

python -m pip install --upgrade scrapy

 

更新scrapy也能正常运行:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值