一、前言
有的时候,Scrapy的callback
方法直接被略过了,不去执行其中的回调方法,可能排查好久都排查不出来,我来教大家集中解决方法。
yield Request(url=url, callback=self.parse_detail, cb_kwargs={'item': item})
二、解决方法
1、url可能被过滤掉了,如果是被scrapy过滤掉了,那就只需要在这个 scrapy.Request() 函数中将参数放入dont_filter=True加入进去。
2、如果发现还是不行,就可能是因为allowed_domains这个赋值的时候赋值的是别的url,其实可以直接把这个注释掉直接不用。
3、仍然无法使用的话,首先那就要看网站协议了,直接在网站中查看输入:https://www.tencent.com/robots.txt 这里就可以看到:
这里是没有限制的,那么的话按照前两个按照操作就可以正常的回调了
4、如果不行就要打开配置文件settings.py,这里的False表示忽略网站的robots.txt协议,默认为True:
ROBOTSTXT_OBEY = False