如果蜘蛛获得重定向,则它应该再次请求,但参数不同。不执行第二个请求中的回调。
如果我使用不同的urlsinstart和checker方法,则效果很好。我认为请求正在使用lazy loads,这就是为什么我的代码无法正常工作的原因,但不确定。
from scrapy.http import Request
from scrapy.spider import BaseSpider
class TestSpider(BaseSpider):
def start(self, response):
return Request(url = 'http://localhost/', callback=self.checker, meta={'dont_redirect': True})
def checker(self, response):
if response.status == 301:
return Request(url = "http://localhost/", callback=self.results, meta={'dont_merge_cookies': True})
else:
return self.results(response)
def results(self, response):
# here I work with response
相关分类