关于Scrapy 自定义Spider Middleware中遇到的坑

解决Scrapy Spider Middleware TypeError问题
本文介绍了在自定义Scrapy Spider Middleware时遇到的'TypeError: process_spider_output() got multiple values for argument ‘response’'错误,提供了解决方案。通过在中间件类方法中添加'self'作为第一个参数,可以成功解决此问题。
关于Scrapy 的”TypeError: process_spider_output() got multiple values for argument ‘response’”的解决办法

由于Scrapy生成的middlewares.py中, 默认的SpiderMiddleware的类方法都不带有self参数, 如

未修改之前的:
     def process_spider_output(response, result, spider):
        # Called with the results returned from the Spider, after
        # it has processed the response.

        # Must return an iterable of Request, dict or Item objects.
        for i in result:
            yield i

然后只需要将所有类方法都加上’self’, 则可解决自定义SpiderMiddleware的这个问题

注意: 你也可以在自定义SpiderMiddleware中重写所有类方法, 并保证第一参数是’self’, 这样也可以解决

经修改之后的:
    def process_spider_output(self, response, result, spider):
        # Called with the results returned from the Spider, after
        # it has processed the response.

        # Must return an iterable of Request, dict or Item objects.
        for i in result:
            yield i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值