Scrapy は、Python で最も人気のあるクローラー フレームワークの 1 つで、ユーザーがクローラーを迅速に構築し、クローラーの効率を向上させるのに役立ちます。 Scrapy をサーバーに自動的に展開すると、ユーザーはクローラー プログラムを展開および管理することがさらに便利になります。この記事では、Scrapyをサーバーに自動デプロイする方法を紹介します。
1. 準備ツール
Scrapy をサーバーに自動的にデプロイするには、いくつかのツールが必要です。これらのツールには次のものが含まれます:
これらのツールは非常に一般的なものなので、まだインストールされていない場合は、公式ドキュメントに従ってインストールできます。
2. プロジェクトの作成
Scrapy のデプロイメントを自動化する前に、まずローカルで Scrapy プロジェクトを作成する必要があります。 Scrapy コマンド ライン ツールを使用して、以下を作成できます。
scrapy startproject myproject
これにより、myproject
という名前の Scrapy プロジェクトが作成されます。このプロジェクトには、デフォルトのコードとディレクトリ構造が含まれています。次に、スパイダー、パイプライン、その他のコンポーネントを記述します。
Scrapy プロジェクトをサーバー上でデプロイして実行しやすくするために、プロジェクトのルート ディレクトリに requirements.txt
ファイルを作成して、プロジェクトの依存関係 Python ライブラリとバージョン。このファイルは、pip を通じて作成できます。例:
pip freeze > requirements.txt
これにより、現在のシステムにインストールされているすべての Python ライブラリとそのバージョン情報が含まれる requirements.txt
ファイルが自動的に生成されます。その中の不要なライブラリを手動で削除し、Scrapy やその他の関連ライブラリやツールなどの必要なライブラリを保持する必要があります。依存関係を特定したら、pip を使用してこれらの依存関係を仮想環境にインストールできます:
pip install -r requirements.txt
3. サーバーの構成
デプロイメントを開始する前に、必要なコンポーネントをサーバ。 Ubuntuを例に挙げると、Git、SSH、Virtualenv、Supervisorをインストールする必要があります。次のコマンドでインストールできます:
sudo apt-get update sudo apt-get install git ssh virtualenv supervisor
インストールが完了したら、サーバー上に新しいユーザーを作成する必要があります。このユーザーは、その後の展開と運用で重要な役割を果たし、Scrapy クローラーにアクセスできます。次のコマンドを使用して、myuser
:
sudo adduser myuser
という名前の新しいユーザーを作成できます。次に、Scrapy デプロイメント ファイルと関連構成を保存するための新しいディレクトリを作成する必要があります。サーバー上で、次のコマンドを使用してディレクトリ /srv/myproject
を作成できます:
sudo mkdir /srv/myproject sudo chown myuser:myuser /srv/myproject
4. Git ウェアハウスと SSH
をセットアップします。 Scrapy プロジェクトは Git リポジトリにアップロードされ、SSH を使用してデプロイされる必要があります。ローカルでは、次のコマンドを使用して、Scrapy プロジェクト内のすべてのコードを Git リポジトリにアップロードできます:
git init git add . git commit -m "Initial commit" git remote add origin ssh://myuser@myserver.com/srv/myproject.git git push -u origin master
このコードは、Scrapy プロジェクトをリモート サーバーにアップロードし、/srv/myproject に保存します。 .git
コンテンツの下。
次に、SSH を使用して Git リポジトリに接続し、関連する操作を実行できるように、サーバー上で SSH を構成する必要があります。このための SSH キーを作成し、サーバー側の authorized_keys
ファイルに公開キーを追加できます。
まず、次のコマンドを使用してローカルに新しい SSH キーを作成できます:
ssh-keygen
これにより、公開キーと秘密キーのペアが作成されます。次に、公開キーをサーバー側の authorized_keys
ファイルに追加する必要があります。
ssh myuser@myserver.com "mkdir -p ~/.ssh && chmod 0700 ~/.ssh && echo 'PUBLIC_KEY' >> ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys"
PUBLIC_KEY
をローカル コンピュータ上の公開キーに置き換えてください。
これで、SSH を使用してサーバーに接続し、操作を実行できるようになります。
5. Scrapy プロジェクトをデプロイする
これで、Scrapy プロジェクトをサーバーに自動的にデプロイする準備が整いました。これを行うには、サーバー上に新しい仮想環境を作成し、Scrapy とその他の必要な依存ライブラリをインストールする必要があります。
mkdir /srv/myproject/env virtualenv /srv/myproject/env source /srv/myproject/env/bin/activate pip install scrapy supervisor
サーバー上に Scrapy プロジェクトの作業ディレクトリを作成し、Git リポジトリから Scrapy プロジェクトのクローンを作成します。プロセス管理を構成するための supervisord.conf
ファイルを作成します:
mkdir /srv/myproject/src cd /srv/myproject/src git clone ssh://myuser@myserver.com/srv/myproject.git . cp /srv/myproject/env/bin/supervisord /srv/myproject/env/bin/supervisord.conf /etc sudo supervisorctl reread sudo supervisorctl update
これにより、Scrapy プロジェクトのクローンがサーバーに作成され、/srv/myproject
ディレクトリに配置されます。 supervisord.conf
ファイルを作成します。 supervisord.conf
ファイルを編集して Scrapy クローラーを開始できます:
[program:myproject] command=/srv/myproject/env/bin/scrapy crawl myspider directory=/srv/myproject/src autostart=true autorestart=true stopasgroup=true killasgroup=true
ここで、command
パラメーターは Scrapy クローラーを開始するために使用され、 directory
パラメータは、作業ディレクトリを指定するために使用されます。autostart
および autorestart
パラメータは、Scrapy クローラーが停止した後に自動的に再起動するために使用されます。および killasgroup
パラメータを使用してプロセスを停止します。関連するすべてのプロセスを同時に停止します。 最後に、次のコマンドを使用して Scrapy クローラーを開始できます:
sudo supervisorctl start myproject
この方法で、Scrapy クローラーをサーバーにデプロイし、自動的に実行できます。
要約
Scrapy のサーバーへの自動デプロイは非常に便利で効率的な方法で、コードをリモート Git リポジトリにアップロードし、SSH 経由でサーバーに接続してデプロイと管理を行うことができます。 Virtualenv と Supervisor を使用すると、プロジェクトの環境とプロセスをより適切に制御し、Scrapy クローラーをサーバー上で自動的に実行できるようになります。
以上がScrapy はサーバーへのデプロイメントをどのように自動化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。