Scrapy Image Pipeline运行无报错但不下载图片问题求助
问题解决方法
- 依赖缺失修复
Scrapy的ImagesPipeline依赖Pillow库处理图片,未安装时不会抛出显性错误,但会直接跳过图片下载步骤。
执行以下命令安装依赖:
pip install pillow
- 配置冲突修复
Spider类中定义的custom_settings优先级高于全局settings.py,你代码里spider的custom_settings指定了IMAGES_STORE = '.images_download/full',会覆盖settings.py里的绝对路径配置。
二选一解决即可:
- 删除spider里的custom_settings相关配置,直接使用全局settings的存储路径
- 确认相对路径
.images_download/full对应当前运行目录有写入权限,手动创建该目录后再运行爬虫
- 规则不生效修复
你重写了start_requests方法但返回的Request没有指定callback,CrawlSpider需要依赖默认的parse方法处理初始响应、触发规则匹配,未指定callback时初始响应不会触发后续的规则爬取,自然没有图片item生成。
修改start_requests的yield代码:
yield scrapy.Request(url=url, callback=self.parse)
- 图片URL拼接逻辑优化
用正则匹配替换相对路径容错性极差,部分深层页面的img相对路径前缀可能不是../../,会导致正则报错、URL拼接错误。
替换原有正则拼接逻辑,使用Scrapy内置方法自动处理相对路径转绝对路径:
img = response.xpath('//div[@class="item active"]/img/@src').get() img_url = response.urljoin(img)
- 问题排查建议
在settings.py中添加LOG_LEVEL = 'DEBUG',运行爬虫后查看日志中是否有Scraped from <xxx>的item输出,以及是否有图片下载相关的报错(比如404、权限拒绝、路径不存在等),可快速定位具体问题点。
内容的提问来源于stack exchange,提问作者Oluwadamilola Sonaike
相关产品推荐
相关产品推荐

