情况1:未完成函数/测试函数
那个函数没有任何结果返回,可能这就是一个测试函数或是没写完的函数,因此只需要在这个函数结尾加一个yield就可以了,回调另一个空的函数就不会有任何影响:
# -*- coding: gbk -*-
def parse(self, response):
# balabala
yield scrapy.Request(movie_url, callback=self.test_page, dont_filter=False, meta={
'url': movie_url,
})
def test_page(self, response): # 不会执行!!!
print('lalala')
变为:
def parse(self, response):
# balabala
yield scrapy.Request(movie_url, callback=self.test_page, dont_filter=False, meta={
'url': movie_url,
})
def test_page(self, response): # 可以执行....
print('lalala')
yield scrapy.Request(movie_url, callback=self.blank, dont_filter=False)
def blank(self,response):
pass
情况2:allowed_domains配置了错误
可能是allowed_domains里配置了如:www.baidu.com,但百度的其他页面是 baidu.com/xxxxx,这个就会跳过这个页面。参考:http://www.scrapyd.cn/error/2018/0209/173.html
情况3:dont_filter=True
改成 dont_filter=False
情况4:403/404/500等错误
(感谢vxhorse
小伙伴~)