scrapy出现IndentationError: unexpected indent有关的两处错误的解决办法

在使用scrapy的过程中,由于需要动态爬取网页,因此在循环中加入如下代码,随后出现下述报错

代码如下:

yield scrapy.Request(site, callback = self.parse_other_web, dont_filter=True)

报错如下:在这里插入图片描述

pthon版本为:* Python3.7.4和python3.8.3
scrapy版本为: Scrapy 2.2.1

以下代码可以重现此问题(请整段复制后运行)

import ast
import inspect
from textwrap import dedent
class Bob:
    def doit(self):
        """
this line is flush left
        """
        if True:
            yield 1234

if __name__ == '__main__':
    b = Bob()
    c = b.doit
    if inspect.isgeneratorfunction(c):
        tree = ast.parse(dedent(inspect.getsource(c)))

解决办法

其实出现这个问题和yield是否在循环中并没有关系,而是因为yield为文件中的缩进要求较高,因此只需将文件中所有单独成行的注释全部去除即可。

以下链接为查找原文

https://github.com/scrapy/scrapy/issues/4477

https://github.com/rugantio/fbcrawl/issues/62

https://www.reddit.com/r/scrapy/comments/gt0cn0/setting_start_urls_to_a_set_list/?sort=top

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值