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 , так что в чем проблема?

  • Python: как разобрать тело из сырой электронной почты, учитывая, что у сырой электронной почты нет тега «Body» или что-то еще
  • Заполните и отправьте форму html
  • Несколько конструкторов в python, используя наследование
  • Вычтите год из столбца datetime в пандах
  • Как получить всю комбинацию n двоичного значения?
  • Как сохранить список в виде CSV-файла с помощью python с новыми строками?
  • ImportError: невозможно импортировать имя NUMPY_MKL
  • Заменить все вхождения определенных слов
  • One Solution collect form web for “ReactorNotRestartable ошибка во время цикла с помощью scrapy”

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

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

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

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