Я пытаюсь отправить несколько запросов на сканирование с помощью облачных функций Google. Тем не менее, я, кажется, получаю ошибку ReactorNotRestartable
. Из других сообщений на StackOverflow, таких как этот , я понимаю, что это происходит из-за невозможности перезапустить реактор, в частности, при выполнении al oop.
Способ решить эту проблему, поместив start()
вне для l oop. Однако с облачными функциями это невозможно, поскольку каждый запрос должен быть технически независимым.
Кешируется ли CrawlerProcess
с помощью облачных функций? И если так, как мы можем удалить это поведение.
Я пытался, например, поместить процесс импорта и инициализации внутри функции, а не снаружи, чтобы предотвратить кэширование импорта, но это не сработало:
# main.py
def run_single_crawl(data, context):
from scrapy.crawler import CrawlerProcess
process = CrawlerProcess()
process.crawl(MySpider)
process.start()