方法 ‘XXXX.parse()‘ 的签名与类 ‘Spider‘ 中基方法的签名不匹配

Signature of method ‘XXXX.parse()’ does not match signature of the base method in class ‘Spider’

为Scrapy框架遇到的问题

在使用Scrapy爬虫框架时遇到的小问题,parse高亮


问题描述

在使用scrapy默认生成的框架文件时遇到 Signature of method ‘XXXX.parse()’ does not match signature of the base method in class ‘Spider’ 或者是 方法 ‘XXXX.parse()’ 的签名与类 ‘Spider’ 中基方法的签名不匹配

方法 ‘XXXX.parse()‘ 的签名与类 ‘Spider‘ 中基方法的签名不匹配_第1张图片


解决方案

在response后添加 *args, **kwargs即可

方法 ‘XXXX.parse()‘ 的签名与类 ‘Spider‘ 中基方法的签名不匹配_第2张图片

def parse(self, response, *args, **kwargs)

原因分析:

在继承父类的时候,有些父类函数是必须要重写的,重写的时候的函数参数有规定(这个函数参数形式的规定也叫函数签名),你重写这个函数的时候参数与要求的不一致所以会报错,解决方案就是按照要求修改参数就行,也就是需要加上后面两个参数。

你可能感兴趣的:(scrapy,python)