ローカル マシンに作業中のスパイダーがあり、アイテムをローカルの postgres データベースに書き込みます。
私は今、EC2 インスタンスで Scrapyd を介して同じスパイダーを実行しようとしています。コード (モデル、パイプライン、設定ファイル) がローカル マシン上のデータベースを参照しているため、これは明らかに機能しません。
これを機能させるには、どの適応を実装する必要がありますか?
ローカル マシンに作業中のスパイダーがあり、アイテムをローカルの postgres データベースに書き込みます。
私は今、EC2 インスタンスで Scrapyd を介して同じスパイダーを実行しようとしています。コード (モデル、パイプライン、設定ファイル) がローカル マシン上のデータベースを参照しているため、これは明らかに機能しません。
これを機能させるには、どの適応を実装する必要がありますか?
見つけた、答えは思ったより簡単だった。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