백엔드 개발 파이썬 튜토리얼 Scrapy는 서버에 대한 배포를 어떻게 자동화합니까?

Scrapy는 서버에 대한 배포를 어떻게 자동화합니까?

Jun 22, 2023 am 08:08 AM
까다로운 자동 배포 서버 배포 자동화된 배포 솔루션

Scrapy는 Python에서 가장 인기 있는 크롤러 프레임워크 중 하나입니다. 이를 통해 사용자는 크롤러를 빠르게 구축하고 크롤러 효율성을 향상시킬 수 있습니다. 서버에 Scrapy를 자동으로 배포하면 사용자가 크롤러 프로그램을 보다 편리하게 배포하고 관리할 수 있습니다. 이 기사에서는 Scrapy를 서버에 자동으로 배포하는 방법을 소개합니다.

1. 준비 도구

Scrapy를 서버에 자동으로 배포하려면 몇 가지 도구가 필요합니다. 이러한 도구에는 다음이 포함됩니다.

  1. Git: 로컬과 서버 간 코드 관리를 위한 버전 제어 도구.
  2. SSH: 보안 셸, 안전하게 데이터를 전송하고 로컬 서버와 원격 서버 간에 명령을 실행합니다.
  3. Virtualenv: Scrapy 배포 환경을 더 명확하고 독립적으로 만들 수 있는 Python 가상 환경 관리 도구입니다.
  4. 감독자: 서버에서 Scrapy 크롤러 프로세스를 관리하고 모니터링하는 데 사용되는 프로세스 제어 시스템입니다.

이러한 도구는 매우 일반적입니다. 아직 설치되지 않은 경우 공식 문서에 따라 설치할 수 있습니다.

2. 프로젝트 생성

자동화된 Scrapy 배포 전에 먼저 로컬에서 Scrapy 프로젝트를 생성해야 합니다. Scrapy 명령줄 도구를 사용하여 생성할 수 있습니다.

scrapy startproject myproject
로그인 후 복사

이렇게 하면 일부 기본 코드와 디렉터리 구조가 포함된 myproject라는 이름의 Scrapy 프로젝트가 생성됩니다. 다음으로 스파이더, 파이프라인 및 기타 구성 요소를 작성할 수 있습니다. 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参数用于指定工作目录,autostartautorestart参数用于在Scrapy爬虫停止后自动重启,stopasgroupkillasgroup

Scrapy 프로젝트를 서버에서 더욱 편리하게 배포하고 실행할 수 있도록 프로젝트 루트 디렉터리에 requirements.txt 파일을 생성하여 프로젝트가 의존하는 Python 라이브러리와 라이브러리를 관리할 수 있습니다. 버전. 이 파일은 pip를 통해 생성할 수 있습니다. 예:

sudo supervisorctl start myproject
로그인 후 복사
이렇게 하면 현재 시스템에 설치된 모든 Python 라이브러리와 해당 버전 정보가 포함된 requirements.txt 파일이 자동으로 생성됩니다. 불필요한 라이브러리를 수동으로 제거하고 Scrapy 및 기타 관련 라이브러리 및 도구와 같은 필수 라이브러리를 유지해야 합니다. 종속성을 확인한 후 pip를 사용하여 가상 환경에 이러한 종속성을 설치할 수 있습니다.

rrreee

3. 서버 구성

배포를 시작하기 전에 서버에 필수 구성 요소를 설치해야 합니다. Ubuntu를 예로 들면 Git, SSH, Virtualenv 및 Supervisor를 설치해야 합니다. 다음 명령을 통해 설치할 수 있습니다: 🎜rrreee🎜설치가 완료되면 서버에 새 사용자를 생성해야 합니다. 이 사용자는 후속 배포 및 운영에서 중요한 역할을 하며 Scrapy 크롤러에 액세스할 수 있습니다. 다음 명령을 사용하여 myuser라는 새 사용자를 생성할 수 있습니다. 🎜rrreee🎜 다음으로 Scrapy 배포 파일 및 관련 구성을 저장할 새 디렉터리를 생성해야 합니다. 서버에서 다음 명령을 사용하여 /srv/myproject 디렉토리를 생성할 수 있습니다: 🎜rrreee🎜4. Git 저장소와 SSH를 설정하세요🎜🎜다음으로 Scrapy 프로젝트를 업로드해야 합니다. Git 저장소를 만들고 SSH를 사용하여 배포합니다. 로컬에서는 다음 명령을 사용하여 Scrapy 프로젝트의 모든 코드를 Git 저장소에 업로드할 수 있습니다.🎜rrreee🎜이 코드는 Scrapy 프로젝트를 원격 서버에 업로드하고 /srv/myproject.git에 저장합니다. 코드> 내용 아래. 🎜🎜다음으로 SSH를 사용하여 Git 저장소에 연결하고 관련 작업을 수행할 수 있도록 서버에서 SSH를 구성해야 합니다. 이를 위해 SSH 키를 생성하고 공개 키를 서버 측의 <code>authorized_keys 파일에 추가할 수 있습니다. 🎜🎜먼저 다음 명령을 사용하여 로컬에서 새 SSH 키를 생성할 수 있습니다. 🎜rrreee🎜이렇게 하면 공개 키와 개인 키 쌍이 생성됩니다. 다음으로 서버 측의 authorized_keys 파일에 공개 키를 추가해야 합니다. 🎜rrreee🎜 PUBLIC_KEY를 로컬 컴퓨터의 공개 키로 바꾸세요. 🎜🎜이제 SSH를 사용하여 서버에 연결하고 작업을 수행할 수 있습니다. 🎜🎜5. Scrapy 프로젝트 배포🎜🎜이제 서버에 Scrapy 프로젝트를 자동으로 배포할 준비가 되었습니다. 이를 위해서는 서버에 새로운 가상 환경을 생성하고 Scrapy 및 기타 필수 종속 라이브러리를 설치해야 합니다. 🎜rrreee🎜서버에 Scrapy 프로젝트 작업 디렉터리를 생성하고 Git 저장소에서 Scrapy 프로젝트를 복제한 다음 supervisord.conf 파일은 프로세스 관리를 구성하는 데 사용됩니다. 🎜rrreee🎜이렇게 하면 Scrapy 프로젝트가 서버에 복제되고 /srv/myproject 디렉토리에 supervisord가 생성됩니다. .conf 파일. supervisord.conf 파일을 편집하여 Scrapy 크롤러를 시작할 수 있습니다. 🎜rrreee🎜command 매개변수는 Scrapy 크롤러를 시작하는 데 사용되며 디렉터리 code> 매개변수는 작업 디렉터리를 지정하는 데 사용되며, <code>autostartautorestart 매개변수는 Scrapy 크롤러가 중지된 후 자동으로 다시 시작하는 데 사용되며, stopasgroupkillasgroup 매개변수가 사용됩니다. 프로세스를 중지하면 관련 프로세스도 모두 중지됩니다. 🎜🎜마지막으로 다음 명령을 사용하여 Scrapy 크롤러를 시작할 수 있습니다. 🎜rrreee🎜이러한 방식으로 Scrapy 크롤러를 서버에 배포하고 자동으로 실행할 수 있습니다. 🎜🎜요약🎜

Scrapy를 서버에 자동으로 배포하는 것은 매우 편리하고 효율적인 방법입니다. 코드를 원격 Git 저장소에 업로드하고 배포 및 관리를 위해 SSH를 통해 서버에 연결할 수 있습니다. Virtualenv와 Supervisor를 사용하면 프로젝트의 환경과 프로세스를 더 잘 제어할 수 있고 Scrapy 크롤러가 서버에서 자동으로 실행되도록 할 수 있습니다.

위 내용은 Scrapy는 서버에 대한 배포를 어떻게 자동화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까? Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? 한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까? Apr 01, 2025 pm 11:15 PM

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법? 10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법? Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까? 중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까? Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

정규 표현이란 무엇입니까? 정규 표현이란 무엇입니까? Mar 20, 2025 pm 06:25 PM

정규 표현식은 프로그래밍의 패턴 일치 및 텍스트 조작을위한 강력한 도구이며 다양한 응용 프로그램에서 텍스트 처리의 효율성을 높입니다.

Uvicorn은 Serving_forever ()없이 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 Serving_forever ()없이 HTTP 요청을 어떻게 지속적으로 듣습니까? Apr 01, 2025 pm 10:51 PM

Uvicorn은 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 ASGI를 기반으로 한 가벼운 웹 서버입니다. 핵심 기능 중 하나는 HTTP 요청을 듣고 진행하는 것입니다 ...

문자열을 통해 객체를 동적으로 생성하고 방법을 파이썬으로 호출하는 방법은 무엇입니까? 문자열을 통해 객체를 동적으로 생성하고 방법을 파이썬으로 호출하는 방법은 무엇입니까? Apr 01, 2025 pm 11:18 PM

파이썬에서 문자열을 통해 객체를 동적으로 생성하고 메소드를 호출하는 방법은 무엇입니까? 특히 구성 또는 실행 해야하는 경우 일반적인 프로그래밍 요구 사항입니다.

인기있는 파이썬 라이브러리와 그 용도는 무엇입니까? 인기있는 파이썬 라이브러리와 그 용도는 무엇입니까? Mar 21, 2025 pm 06:46 PM

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

See all articles