Ошибка ReactorNotRestartable при последовательном запуске двух пауков с помощью CrawlerProcess - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь запустить двух пауков последовательно, вот структура моего модуля

class tmallSpider(scrapy.Spider):
    name = 'tspider'
    ...

class jdSpider(scrapy.Spider):
    name = 'jspider'
    ...

process = CrawlerProcess(get_project_settings())
process.crawl('tspider')
process.crawl('jspider')
process.start(stop_after_crawl=False)

Когда я запускаю это, я получаю эту ошибку:

raise error.ReactorNotRestartable()
twisted.internet.error.ReactorNotRestartable

Когда я прокрутите в терминале, я вижу, что два паука успешно запущены, и данные, которые я хочу получить, успешно очищены. Однако ошибка возникает в конце, и я думаю, это потому, что процесс не может завершиться? Я пробовал process.stop, но он не работает. Я также пробовал код из официального руководства (https://docs.scrapy.org/en/latest/topics/practices.html), но он вызывает ошибку «паук не найден». Есть идеи как исправить?

1 Ответ

1 голос
/ 09 июля 2020

Вы пробовали CrawlRunner и пример из Документов? CrawlerRunner полезен для запуска нескольких пауков и возможности их остановки вручную.

Если да, не могли бы вы предоставить минимальный пример своего кода для этого и явное сообщение об ошибке, которое вы получаете?

...