Выдает больше запросов, если скребок простаивает более 20 с - PullRequest
0 голосов
/ 22 января 2019

Я бы хотел yield больше запросов в конце CrawlSpider, который использует Rules. Я заметил, что не смог обработать больше запросов, выполнив это в методе spider_closed: self.crawler.engine.crawl(r, self) Я заметил, что этот метод работает в методе spider_idle, но я хотел бы подождать, чтобы убедиться, что сканирование завершено, прежде чем выдавать больше запросов.

Я установил настройку CLOSESPIDER_TIMEOUT = 30 Какой код будет ждать 20 секунд бездействия перед запуском процесса подачи большего количества запросов? Есть ли лучший способ?

1 Ответ

0 голосов
/ 23 января 2019

Если действительно важно, чтобы предыдущее сканирование полностью завершилось до начала нового сканирования, рассмотрите возможность запуска двух отдельных пауков или одного и того же паука дважды подряд с различными аргументами , определяющими, какие URL он сканирует , См. Запуск Scrapy из сценария .

Если вам действительно не нужно завершать предыдущее сканирование, и у вас просто есть URL-адреса, которые по какой-то причине должны иметь более высокий приоритет, чем другие URL-адреса, рассмотрите возможность использования приоритетов запросов. См. Параметр priority конструктора класса Request .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...