2014-11-18 4 views
0

У меня есть рабочий паук на моей локальной машине, которая записывает элементы в локальную базу данных postgres.Scrapy на AWS EC2: где писать предметы?

Теперь я пытаюсь запустить тот же паук через scrapyd на экземпляр EC2. Это явно не сработает, потому что код (модели, конвейеры, файлы настроек) относится к базе данных на моей локальной машине.

Какие приспособления следует применять для выполнения этой работы?

ответ

1

Нашел, ответ был проще, чем я думал. В файле settings.py удалите настройки для ITEM_PIPELINES и DATABASE. После удаления разверните проект через scrapyd на EC2.

По умолчанию элементы теперь будут записаны как JSON-линии. Это можно переопределить FEED_FORMAT и FEED_URI:

sudo curl http:/xxxxxxxxx.us-west-2.compute.amazonaws.com:6800/schedule.json -d project=xxxxxxxxxx -d spider=xxxxxxxxx -d setting=FEED_URI=/var/lib/scrapyd/items/xxxxxxxxxx.csv -d setting=FEED_FORMAT=csv 
+1

Вы также можете воспользоваться услугой RDS, если вы все еще хотите хранить элементы в БД. –

+0

Именно так, используя экземпляр Postgres на RDS. И бесплатно! –

 Смежные вопросы

  • Нет связанных вопросов^_^