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

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

代码如下:

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

报错如下:scrapy出现IndentationError: unexpected indent有关的两处错误的解决办法_第1张图片

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

你可能感兴趣的:(爬虫遇到的坑,python,debug)