Maison développement back-end Tutoriel Python Comment Scrapy automatise-t-il le déploiement sur le serveur ?

Comment Scrapy automatise-t-il le déploiement sur le serveur ?

Jun 22, 2023 am 08:08 AM
scrapy自动化部署 服务器部署 自动化部署方案

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 :

  1. Git : outil de contrôle de version pour gérer le code entre le local et le serveur.
  2. SSH : Secure Shell, transférez des données en toute sécurité et exécutez des commandes entre des serveurs locaux et distants.
  3. Virtualenv : outil de gestion de l'environnement virtuel Python, qui peut rendre notre environnement de déploiement Scrapy plus clair et indépendant.
  4. Superviseur : système de contrôle de processus, utilisé pour gérer et surveiller le processus du robot Scrapy sur le serveur.

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
Copier après la connexion

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
Copier après la connexion

这会自动生成一个requirements.txt文件,其中包含了当前系统中所安装的所有Python库以及它们的版本信息。我们需要手动删除其中不必要的库并保留必需的库,例如Scrapy和其他相关的库和工具。确定好依赖之后,我们可以使用pip在虚拟环境中安装这些依赖:

pip install -r requirements.txt
Copier après la connexion

三、配置服务器

在开始部署之前,我们需要在服务器上安装需要的组件。以Ubuntu为例,我们需要安装Git、SSH、Virtualenv和Supervisor。可以通过以下命令进行安装:

sudo apt-get update
sudo apt-get install git ssh virtualenv supervisor
Copier après la connexion

安装完成后,我们需要在服务器上创建一个新的用户。这个用户将会在之后的部署和运行中扮演重要的角色,并拥有Scrapy爬虫的访问权限。可以使用以下命令创建一个名为myuser的新用户:

sudo adduser myuser
Copier après la connexion

接下来,我们需要创建一个新的目录,用于保存Scrapy部署文件和相关配置。在服务器上,可以使用以下命令来创建一个/srv/myproject的目录:

sudo mkdir /srv/myproject
sudo chown myuser:myuser /srv/myproject
Copier après la connexion

四、设置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
Copier après la connexion

这段代码将Scrapy项目上传到了远程服务器上,保存在/srv/myproject.git目录下。

接下来,我们需要在服务器上配置SSH,以便可以使用SSH连接到Git仓库并执行相关操作。我们可以为此创建一个SSH密钥,并将公钥添加到服务器端的authorized_keys文件中。

首先,我们可以在本地使用以下命令创建一个新的SSH密钥:

ssh-keygen
Copier après la connexion

这将会创建一对公钥和私钥。接下来,我们需要将公钥添加到服务器端的authorized_keys文件中:

ssh myuser@myserver.com "mkdir -p ~/.ssh && chmod 0700 ~/.ssh && echo 'PUBLIC_KEY' >> ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys"
Copier après la connexion

请替换PUBLIC_KEY为您本地计算机上的公钥。

现在我们可以使用SSH连接到服务器上并进行操作。

五、部署Scrapy项目

现在,我们已经准备好在服务器上自动部署Scrapy项目了。为此,我们需要在服务器上新建一个虚拟环境,并安装Scrapy和其他需要的依赖库:

mkdir /srv/myproject/env
virtualenv /srv/myproject/env
source /srv/myproject/env/bin/activate
pip install scrapy supervisor
Copier après la connexion

在服务器上创建一个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
Copier après la connexion

这会将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
Copier après la connexion

其中command参数用于启动Scrapy爬虫,directory参数用于指定工作目录,autostartautorestart参数用于在Scrapy爬虫停止后自动重启,stopasgroupkillasgroup

Afin de rendre notre projet Scrapy plus pratique à déployer et à exécuter sur le serveur, nous pouvons créer un fichier 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 myproject
Copier après la connexion
Cela 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Que sont les expressions régulières? Que sont les expressions régulières? Mar 20, 2025 pm 06:25 PM

Les expressions régulières sont des outils puissants pour la correspondance des motifs et la manipulation du texte dans la programmation, améliorant l'efficacité du traitement de texte sur diverses applications.

Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Quelles sont les bibliothèques Python populaires et leurs utilisations? Quelles sont les bibliothèques Python populaires et leurs utilisations? Mar 21, 2025 pm 06:46 PM

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

See all articles