Scrapy はサーバーへのデプロイメントをどのように自動化しますか?
Scrapy は、Python で最も人気のあるクローラー フレームワークの 1 つで、ユーザーがクローラーを迅速に構築し、クローラーの効率を向上させるのに役立ちます。 Scrapy をサーバーに自動的に展開すると、ユーザーはクローラー プログラムを展開および管理することがさらに便利になります。この記事では、Scrapyをサーバーに自動デプロイする方法を紹介します。
1. 準備ツール
Scrapy をサーバーに自動的にデプロイするには、いくつかのツールが必要です。これらのツールには次のものが含まれます:
- Git: バージョン管理ツール。ローカルとサーバー間のコードを管理します。
- SSH: Secure Shell。ローカル サーバーとリモート サーバー間でデータを安全に転送し、コマンドを実行します。
- Virtualenv: Python 仮想環境管理ツール。Scrapy デプロイメント環境をより明確かつ独立させることができます。
- スーパーバイザー: サーバー上の 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。
