ReactorNotRestartable ошибка во время цикла с помощью scrapy

Я получаю twisted.internet.error.ReactorNotRestartable ошибку при выполнении следующего кода:

 from time import sleep from scrapy import signals from scrapy.crawler import CrawlerProcess from scrapy.utils.project import get_project_settings from scrapy.xlib.pydispatch import dispatcher result = None def set_result(item): result = item while True: process = CrawlerProcess(get_project_settings()) dispatcher.connect(set_result, signals.item_scraped) process.crawl('my_spider') process.start() if result: break sleep(3) 

Впервые он работает, затем я получаю ошибку. Я каждый раз создаю переменную process , так что в чем проблема?

  • Как получить имя файла модуля __main__ в Python?
  • Библиотека Python для разделения и объединения mp3-файлов
  • Можно ли перечислить все функции в модуле?
  • Пакеты Python не устанавливаются в virtualenv с помощью pip
  • Как конвертировать MP3 в WAV в Python
  • Поиск длины mp3-файла
  • Установка дескриптора в python3.5 асинхронно
  • Можно ли закончить импорт модуля python с чем-то вроде возврата?
  • Python: «Частный» модуль в пакете
  • Можно ли перечислить все функции в модуле?
  • Библиотека Python для разделения и объединения mp3-файлов
  • Поиск длины mp3-файла
  • One Solution collect form web for “ReactorNotRestartable ошибка во время цикла с помощью scrapy”

    По умолчанию CrawlerProcess .start() остановит реактор Twisted, который он создает, когда все сканеры закончили.

    Вы должны вызвать process.start(stop_after_crawl=False) если вы создаете process на каждой итерации.

    Другой вариант – обработать реактор Twisted самостоятельно и использовать CrawlerRunner . У этого документа есть пример .

    Python - лучший язык программирования в мире.