Я пытаюсь запустить Scrapy на AWS лямбда-функции, и все почти работает, за исключением того, что мне нужно запустить 2 лямбда-функции в 1-й функции. Основная проблема в том, что мне нужно, чтобы 2 паука выводили в 2 разные JSON файлы.
документы выглядят так, как будто у них очень близкое решение :
import scrapy
from scrapy.crawler import CrawlerProcess
class MySpider1(scrapy.Spider):
# Your first spider definition
...
class MySpider2(scrapy.Spider):
# Your second spider definition
...
process = CrawlerProcess()
process.crawl(MySpider1)
process.crawl(MySpider2)
process.start()
За исключением того факта, что если бы я должен был ввести свои настройки в CrawlerProcess
, как у меня сейчас:
CrawlerProcess({
'FEED_FORMAT': 'json',
'FEED_URI': '/tmp/fx_today_data.json'
})
Тогда оба паука выведут в один файл fx_today_data.json
.
Я пытался создать 2 CrawlerProcesses, но это дает мне ошибку ReactorNotRestartable
, которую я пытался решить , используя этот поток , но безуспешно.
Я также пытался запустить код scrapy следующим образом:
subprocess.call(["scrapy", "runspider", "./spiders/fx_today_data.py", "-o", "/tmp/fx_today_data.json"])
Но это приводит к тому, что обычная команда 'scrapy' не найдена - потому что у меня нет настройки virtualenv в функции Lambda (Я не знаю, стоит ли его настраивать для этого?).
Кто-нибудь знает, как запустить 2 Scrapy Spider (у них нет для запуска в одно и то же время) в одном процессе и выводить ли их в отдельные файлы?