Приостановка отдельных пауков в CrawlerProcess - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я работаю над проектом, который включает в себя сканирование данных с различных (около 50 веб-сайтов).Есть один веб-сайт, на котором есть несколько страниц, которые нам нужно очистить, но этот веб-сайт не допускает нескольких сеансов.(сайт аутентифицирован).

Есть ли способ сделать паузу одним пауком, пока другой не закончится?

Я исследовал это в течение последнего дня.Я нашел несколько способов сделать паузу, но кажется, что они работают только для всего CrawlerProcess.

1 Ответ

0 голосов
/ 10 июня 2019

Решение было на самом деле довольно простым.Каждый паук имеет уникальный идентификационный код.При настройке CrawlerProcess программа проверяет, совпадает ли уникальный код с тем, который требует приостановки, и, если это так, передает экземпляр паука тому пауну, который должен быть запущен первым, который затем приостанавливает его с помощью self.custom_settings['XX_SPIDER'].crawler.pause()и когда это будет сделано, в функции closed() отмените ее с помощью self.custom_settings['XX_SPIDER'].crawler.unpause()

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