У меня есть веб-сайт, для которого мой искатель должен следовать последовательности. Так, например, ему нужно перейти a1, b1, c1 до начала перехода a2 и т.д. Каждый из 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 необходимо начинать скребковый уровень c, как только он сможет до сканирования уровня bs уровня. Как это можно достичь?