Heim > Backend-Entwicklung > Python-Tutorial > Wie automatisiert Scrapy die Bereitstellung auf dem Server?

Wie automatisiert Scrapy die Bereitstellung auf dem Server?

WBOY
Freigeben: 2023-06-22 08:08:38
Original
1343 Leute haben es durchsucht

Scrapy ist eines der beliebtesten Crawler-Frameworks in Python. Es kann Benutzern helfen, Crawler schnell zu erstellen und die Crawler-Effizienz zu verbessern. Durch die automatische Bereitstellung von Scrapy auf dem Server können Benutzer Crawler-Programme bequemer bereitstellen und verwalten. In diesem Artikel erfahren Sie, wie Sie Scrapy automatisch auf dem Server bereitstellen.

1. Vorbereitungstools

Um Scrapy automatisch auf dem Server bereitzustellen, benötigen wir einige Tools. Zu diesen Tools gehören:

  1. Git: Versionskontrolltool zum Verwalten von Code zwischen lokal und Server.
  2. SSH: Secure Shell, sichere Übertragung von Daten und Ausführung von Befehlen zwischen lokalen und Remote-Servern.
  3. Virtualenv: Python-Tool zur Verwaltung virtueller Umgebungen, das unsere Scrapy-Bereitstellungsumgebung klarer und unabhängiger machen kann.
  4. Supervisor: Prozesssteuerungssystem, das zur Verwaltung und Überwachung des Scrapy-Crawler-Prozesses auf dem Server verwendet wird.

Diese Tools sind sehr verbreitet. Wenn sie noch nicht installiert sind, können Sie sie gemäß der offiziellen Dokumentation installieren.

2. Erstellen Sie ein Projekt

Vor der automatisierten Scrapy-Bereitstellung müssen wir zunächst lokal ein Scrapy-Projekt erstellen. Es kann mit dem Scrapy-Befehlszeilentool erstellt werden:

scrapy startproject myproject
Nach dem Login kopieren

Dadurch wird ein Scrapy-Projekt mit dem Namen myproject erstellt, das einige Standardcodes und eine Verzeichnisstruktur enthält. Als nächstes können wir Spiders, Pipelines und andere Komponenten schreiben. myproject的Scrapy项目,其中包括了一些默认的代码和目录结构。接下来,我们可以编写Spiders、Pipeline以及其他的组件。

为了让我们的Scrapy项目可以更方便地在服务器上部署和运行,我们可以在项目根目录下创建一个requirements.txt文件,用于管理项目所依赖的Python库和版本。这个文件可以通过pip进行创建,例如:

pip freeze > requirements.txt
Nach dem Login kopieren

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

pip install -r requirements.txt
Nach dem Login kopieren

三、配置服务器

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

sudo apt-get update
sudo apt-get install git ssh virtualenv supervisor
Nach dem Login kopieren

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

sudo adduser myuser
Nach dem Login kopieren

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

sudo mkdir /srv/myproject
sudo chown myuser:myuser /srv/myproject
Nach dem Login kopieren

四、设置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
Nach dem Login kopieren

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

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

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

ssh-keygen
Nach dem Login kopieren

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

ssh myuser@myserver.com "mkdir -p ~/.ssh && chmod 0700 ~/.ssh && echo 'PUBLIC_KEY' >> ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys"
Nach dem Login kopieren

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

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

五、部署Scrapy项目

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

mkdir /srv/myproject/env
virtualenv /srv/myproject/env
source /srv/myproject/env/bin/activate
pip install scrapy supervisor
Nach dem Login kopieren

在服务器上创建一个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
Nach dem Login kopieren

这会将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
Nach dem Login kopieren

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

Um die Bereitstellung und Ausführung unseres Scrapy-Projekts auf dem Server zu vereinfachen, können wir im Stammverzeichnis des Projekts eine Datei requirements.txt erstellen, um die Python-Bibliotheken und Bibliotheken zu verwalten, von denen das Projekt abhängt auf. Version. Diese Datei kann beispielsweise über pip erstellt werden:

sudo supervisorctl start myproject
Nach dem Login kopieren
Dadurch wird automatisch eine requirements.txt-Datei generiert, die alle im aktuellen System installierten Python-Bibliotheken und deren Versionsinformationen enthält. Wir müssen die unnötigen Bibliotheken darin manuell entfernen und die notwendigen Bibliotheken wie Scrapy und andere verwandte Bibliotheken und Tools behalten. Nachdem wir die Abhängigkeiten ermittelt haben, können wir pip verwenden, um diese Abhängigkeiten in der virtuellen Umgebung zu installieren:

rrreee

3. Konfigurieren Sie den Server

Bevor wir mit der Bereitstellung beginnen, müssen wir die erforderlichen Komponenten auf dem Server installieren. Am Beispiel von Ubuntu müssen wir Git, SSH, Virtualenv und Supervisor installieren. Es kann über den folgenden Befehl installiert werden: 🎜rrreee🎜Nachdem die Installation abgeschlossen ist, müssen wir einen neuen Benutzer auf dem Server erstellen. Dieser Benutzer wird bei der späteren Bereitstellung und dem Betrieb eine wichtige Rolle spielen und Zugriff auf den Scrapy-Crawler haben. Mit dem folgenden Befehl kann ein neuer Benutzer namens myuser erstellt werden: 🎜rrreee🎜 Als nächstes müssen wir ein neues Verzeichnis erstellen, um Scrapy-Bereitstellungsdateien und zugehörige Konfigurationen zu speichern. Auf dem Server können Sie den folgenden Befehl verwenden, um ein Verzeichnis /srv/myproject zu erstellen: 🎜rrreee🎜4. Richten Sie das Git-Repository und SSH ein🎜🎜Als nächstes müssen wir das Scrapy-Projekt hochladen das Git-Repository und stellen Sie es über SSH bereit. Lokal können wir den folgenden Befehl verwenden, um den gesamten Code im Scrapy-Projekt in das Git-Repository hochzuladen:🎜rrreee🎜Dieser Code lädt das Scrapy-Projekt auf den Remote-Server hoch und speichert es in /srv/myproject.git Code> Verzeichnis. 🎜🎜Als nächstes müssen wir SSH auf dem Server konfigurieren, damit wir SSH verwenden können, um eine Verbindung zum Git-Repository herzustellen und entsprechende Vorgänge auszuführen. Wir können hierfür einen SSH-Schlüssel erstellen und den öffentlichen Schlüssel serverseitig zur Datei <code>authorized_keys hinzufügen. 🎜🎜Zunächst können wir mit dem folgenden Befehl lokal einen neuen SSH-Schlüssel erstellen: 🎜rrreee🎜Dadurch wird ein öffentliches und privates Schlüsselpaar erstellt. Als nächstes müssen wir den öffentlichen Schlüssel zur Datei authorized_keys auf der Serverseite hinzufügen: 🎜rrreee🎜 Bitte ersetzen Sie PUBLIC_KEY durch den öffentlichen Schlüssel auf Ihrem lokalen Computer. 🎜🎜Jetzt können wir SSH verwenden, um eine Verbindung zum Server herzustellen und Vorgänge auszuführen. 🎜🎜5. Stellen Sie das Scrapy-Projekt bereit🎜🎜Jetzt sind wir bereit, das Scrapy-Projekt automatisch auf dem Server bereitzustellen. Dazu müssen wir eine neue virtuelle Umgebung auf dem Server erstellen und Scrapy und andere erforderliche abhängige Bibliotheken installieren: 🎜rrreee🎜Erstellen Sie ein Scrapy-Projekt-Arbeitsverzeichnis auf dem Server, klonen Sie das Scrapy-Projekt aus dem Git-Repository und erstellen Sie ein supervisord.conf wird zum Konfigurieren der Prozessverwaltung verwendet: 🎜rrreee🎜Dadurch wird das Scrapy-Projekt auf den Server geklont und supervisord im Verzeichnis <code>/srv/myproject erstellt .conf-Datei. Wir können die Datei supervisord.conf bearbeiten, um den Scrapy-Crawler zu starten: 🎜rrreee🎜Der Parameter command wird zum Starten des Scrapy-Crawlers und das Verzeichnis verwendet. Der Parameter code> wird verwendet, um das Arbeitsverzeichnis anzugeben. Die Parameter <code>autostart und autorestart werden verwendet, um den Scrapy-Crawler automatisch neu zu starten, nachdem er gestoppt wurde, die stopasgroup und killasgroup-Parameter werden verwendet. Beim Stoppen eines Prozesses werden auch alle zugehörigen Prozesse gestoppt. 🎜🎜Abschließend können wir den Scrapy-Crawler mit dem folgenden Befehl starten: 🎜rrreee🎜Auf diese Weise kann der Scrapy-Crawler auf dem Server bereitgestellt und automatisch ausgeführt werden. 🎜🎜Zusammenfassung🎜

Die automatisierte Bereitstellung von Scrapy auf dem Server ist eine sehr praktische und effiziente Methode. Wir können den Code in das Remote-Git-Repository hochladen und zur Bereitstellung und Verwaltung eine Verbindung zum Server herstellen. Durch die Verwendung von Virtualenv und Supervisor können wir die Umgebung und den Prozess des Projekts besser steuern und den Scrapy-Crawler automatisch auf dem Server ausführen lassen.

Das obige ist der detaillierte Inhalt vonWie automatisiert Scrapy die Bereitstellung auf dem Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage