You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scrapy代码报错TabError:制表符与空格缩进不一致求助

解决Scrapy代码中的TabError缩进问题

嘿,这个缩进问题我之前写Python代码时也踩过坑,别慌,咱们快速搞定它!

错误原因

这个TabError: inconsistent use of tabs and spaces in indentation错误很明确:你的代码里同时混用了制表符(Tab)和空格来缩进,而Python对缩进的一致性要求非常严格,哪怕是一行里混合了两种都会触发报错,你的问题出在quotes.py的第11行附近,也就是parse方法内部的代码缩进上。

解决步骤

1. 先给编辑器设置统一的缩进规则

Python社区最推荐的是用4个空格代替Tab,先把你的编辑器调整成自动用空格缩进:

  • VS Code:打开设置(Ctrl+,),搜索"tab size",把值设为4,再勾选"Insert spaces"选项;
  • PyCharm:点击File → Settings → Editor → Code Style → Python,把Tab size和Indent都设为4,取消勾选"Use tab character";
  • 其他编辑器(比如Sublime):找设置里的缩进选项,同样设置为4个空格替换Tab。

2. 修复现有代码的缩进

  • 手动修复:找到代码里的Tab(通常显示为一段较长的空白),全部替换成4个空格。重点检查def parse(self, response):这一行的缩进,以及下面h1_tag = ...等代码行,确保每一层缩进都是4个空格;
  • 批量工具修复:大部分编辑器都有一键转换功能,比如VS Code选中代码后按Ctrl+Shift+P(Windows)/Cmd+Shift+P(Mac),输入"Convert Indentation to Spaces"就能批量把Tab转成空格;PyCharm可以选中代码后点Code → Reformat Code(前提是已经设置好缩进规则)。

3. 验证修复是否成功

修复后,先别急着跑Scrapy,在终端里执行这个命令检查代码语法:

python -m py_compile E:\pycode\testscrap1\testscrap1\spiders\quotes.py

如果没有任何输出,说明缩进问题已经解决了,再正常运行Scrapy爬虫就没问题了。

修正后的示例代码

这里给你一段格式正确的代码参考:

import scrapy

class QuotesSpider(scrapy.Spider):
    name = 'quotes'
    allowed_domains = ['quotes.toscrape.com']
    start_urls = ['http://quotes.toscrape.com/']

    def parse(self, response):
        h1_tag = response.xpath('//h1/a/text()').extract_first()
        tags = response.xpath('//div[@class="tags-box"]/a/text()').extract()
        # 这里继续你的业务逻辑,确保每一行缩进都是4个空格

内容的提问来源于stack exchange,提问作者mageshwaran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:23:09