如果使用以下方式,则会报错
# 动态获取爬取域的范围
# def __init__(self, *args, **kwargs):
# domain = kwargs.pop('domain', '')
# self.allowed_domains = filter(None, domain.split(','))
# super(MySpider, self).__init__(*args, **kwargs)
这样写就不会报错:
# 指定爬取域范围
allowed_domains = ['XXXX.com.cn']
其他说法:
官方对这个的解释,是你要request的地址和allow_domain里面的冲突,从而被过滤掉。可以停用过滤功能。
yield Request(url, callback=self.parse_item, dont_filter=True)