Maison >développement back-end >Tutoriel Python >Comment Scrapy automatise-t-il le déploiement sur le serveur ?
Scrapy est l'un des frameworks de robots d'exploration les plus populaires en Python. Il peut aider les utilisateurs à créer rapidement des robots d'exploration et à améliorer leur efficacité. Le déploiement automatique de Scrapy sur le serveur peut permettre aux utilisateurs de déployer et de gérer plus facilement les programmes d'exploration. Cet article explique comment déployer automatiquement Scrapy sur le serveur.
1. Outils de préparation
Pour déployer automatiquement Scrapy sur le serveur, nous avons besoin de quelques outils, ces outils incluent :
Ces outils sont très courants S'ils ne sont pas encore installés, vous pouvez les installer selon la documentation officielle.
2. Créer un projet
Avant le déploiement automatisé de Scrapy, nous devons d'abord créer un projet Scrapy localement. Il peut être créé à l'aide de l'outil de ligne de commande Scrapy :
scrapy startproject myproject
Cela créera un projet Scrapy nommé monprojet
, qui inclut du code par défaut et une structure de répertoires. Ensuite, nous pouvons écrire des Spiders, des Pipelines et d’autres composants. myproject
的Scrapy项目,其中包括了一些默认的代码和目录结构。接下来,我们可以编写Spiders、Pipeline以及其他的组件。
为了让我们的Scrapy项目可以更方便地在服务器上部署和运行,我们可以在项目根目录下创建一个requirements.txt
文件,用于管理项目所依赖的Python库和版本。这个文件可以通过pip进行创建,例如:
pip freeze > requirements.txt
这会自动生成一个requirements.txt
文件,其中包含了当前系统中所安装的所有Python库以及它们的版本信息。我们需要手动删除其中不必要的库并保留必需的库,例如Scrapy和其他相关的库和工具。确定好依赖之后,我们可以使用pip在虚拟环境中安装这些依赖:
pip install -r requirements.txt
三、配置服务器
在开始部署之前,我们需要在服务器上安装需要的组件。以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
四、设置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,以便可以使用SSH连接到Git仓库并执行相关操作。我们可以为此创建一个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连接到服务器上并进行操作。
五、部署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爬虫停止后自动重启,stopasgroup
和killasgroup
requirements.txt
dans le répertoire racine du projet pour gérer les bibliothèques Python et les bibliothèques dont dépend le projet. sur. Ce fichier peut être créé via pip, par exemple : sudo supervisorctl start myprojectCela générera automatiquement un fichier
requirements.txt
, qui contient toutes les bibliothèques Python installées dans le système actuel et leurs informations de version. Nous devons supprimer manuellement les bibliothèques inutiles et conserver les bibliothèques nécessaires comme Scrapy et d'autres bibliothèques et outils associés. Après avoir déterminé les dépendances, nous pouvons utiliser pip pour installer ces dépendances dans l'environnement virtuel : rrreee
3. Configurer le serveur Avant de démarrer le déploiement, nous devons installer les composants requis sur le serveur. En prenant Ubuntu comme exemple, nous devons installer Git, SSH, Virtualenv et Supervisor. Il peut être installé via la commande suivante : 🎜rrreee🎜Une fois l'installation terminée, nous devons créer un nouvel utilisateur sur le serveur. Cet utilisateur jouera un rôle important dans le déploiement et le fonctionnement ultérieurs et aura accès au robot Scrapy. Un nouvel utilisateur nommémyuser
peut être créé à l'aide de la commande suivante : 🎜rrreee🎜 Ensuite, nous devons créer un nouveau répertoire pour enregistrer les fichiers de déploiement Scrapy et les configurations associées. Sur le serveur, vous pouvez utiliser la commande suivante pour créer un répertoire /srv/myproject
: 🎜rrreee🎜4 Configurez le référentiel Git et SSH🎜🎜Ensuite, nous devons télécharger le projet Scrapy sur. le référentiel Git et déployez à l’aide de SSH. Localement, nous pouvons utiliser la commande suivante pour télécharger tout le code du projet Scrapy vers le référentiel Git :🎜rrreee🎜Ce code télécharge le projet Scrapy sur le serveur distant et l'enregistre dans /srv/myproject.git code> répertoire. 🎜🎜Ensuite, nous devons configurer SSH sur le serveur afin de pouvoir utiliser SSH pour nous connecter au référentiel Git et effectuer les opérations associées. Nous pouvons créer une clé SSH pour cela et ajouter la clé publique au fichier <code>authorized_keys
côté serveur. 🎜🎜Tout d'abord, nous pouvons créer une nouvelle clé SSH localement en utilisant la commande suivante : 🎜rrreee🎜Cela créera une paire de clés publique et privée. Ensuite, nous devons ajouter la clé publique au fichier authorized_keys
côté serveur : 🎜rrreee🎜 Veuillez remplacer PUBLIC_KEY
par la clé publique sur votre ordinateur local. 🎜🎜Nous pouvons désormais utiliser SSH pour nous connecter au serveur et effectuer des opérations. 🎜🎜5. Déployer le projet Scrapy🎜🎜Maintenant, nous sommes prêts à déployer automatiquement le projet Scrapy sur le serveur. Pour ce faire, nous devons créer un nouvel environnement virtuel sur le serveur et installer Scrapy et les autres bibliothèques dépendantes requises : 🎜rrreee🎜Créez un répertoire de travail du projet Scrapy sur le serveur, clonez le projet Scrapy à partir du référentiel Git et créez un supervisord.conf est utilisé pour configurer la gestion des processus : 🎜rrreee🎜Cela clonera le projet Scrapy sur le serveur et créera supervisord dans le répertoire <code>/srv/myproject
.conf fichier. Nous pouvons éditer le fichier supervisord.conf
pour démarrer le robot Scrapy : 🎜rrreee🎜Le paramètre command
est utilisé pour démarrer le robot Scrapy, et le répertoire code> est utilisé pour spécifier le répertoire de travail, les paramètres <code>autostart
et autorestart
sont utilisés pour redémarrer automatiquement le robot Scrapy après son arrêt, le stopasgroup
et les paramètres killasgroup
sont utilisés. Lors de l'arrêt d'un processus, il arrête également tous les processus associés. 🎜🎜Enfin, nous pouvons utiliser la commande suivante pour démarrer le robot Scrapy : 🎜rrreee🎜De cette façon, le robot Scrapy peut être déployé sur le serveur et s'exécuter automatiquement. 🎜🎜Résumé🎜Le déploiement automatisé de Scrapy sur le serveur est une méthode très pratique et efficace. Nous pouvons télécharger le code sur le référentiel Git distant et nous connecter au serveur via SSH pour le déploiement et la gestion. En utilisant Virtualenv et Supervisor, nous pouvons mieux contrôler l'environnement et le processus du projet, et laisser les robots Scrapy s'exécuter automatiquement sur le serveur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!