我有一个网站,我的爬虫需要遵循一定的顺序。例如,在开始进行 a2 之前,它需要先进行 a1、b1、c1 等操作。a、b 和 c 中的每一个都由不同的解析函数处理,并且相应的 url 在 Request 对象中创建并生成。下面粗略地说明了我正在使用的代码:
class aspider(BaseSpider):
def parse(self,response):
yield Request(b, callback=self.parse_b, priority=10)
def parse_b(self,response):
yield Request(c, callback=self.parse_c, priority=20)
def parse_c(self,response)
final_function()
然而,我发现爬行的顺序似乎是a1,a2,a3,b1,b2,b3,c1,c2,c3,这很奇怪,因为我认为Scrapy应该首先保证深度。
顺序不必严格,但我正在抓取的网站有一个限制,因此 Scrapy 需要在抓取 5 级 b 之前尽快开始抓取 c 级。如何才能实现这一目标?