如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目

第一步首先 在我们的远程服务器安装 scrapyd  需要远程连接服务器,需要更改bind-ip。将127.0.0.1改为0.0.0.0    

修改配置文件:可以让任何主机可以链接(我这里是创建了虚拟环境所以我要找到我的 虚拟环境下的 scrapyd 编辑 default_scrapyd.conf):

vim /root/.virtualenvs/scrapy/lib/python3.5/site-packages/scrapyd/default_scrapyd.conf

默认是只允许本地主机链接:127.0.0.1

修改红线标注这里的 ip 地址

修改完成之后,就可以连接redis 服务,我们可以在我们本地浏览器访问:

访问这里的网址

浏览器访问scrapyd访问服务器错误

需要回退版本

Scrapy==1.6.0 Twisted==18.9.0 在终端执行这条命令再次启动 scrapyd 访问浏览器

访问scrapyd

第二安装scrapyd-client模块。

scrapyd-client模块是专门打包scrapy爬虫项目到scrapyd服务中的,进入虚拟环境,执行命令pip install scrapy-client,安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件,

在Linux系统下可以远行,

在windows下是不能运行的,所以我们需要编辑一下使其在windows可以运行

新建一个scrapyd-deploy.bat文件,右键选择编辑,输入以下配置,注意:两个路径之间是空格

@echo off

D:\ENVS\py2.7scrapy\Scripts\python.exe D:\ENVS\py2.7scrapy\Scripts\scrapyd-deploy %*

注意:这里填的是自己电脑 python 的路径

Scrapyd 分布式部署

1.如果采用上传文件的方式部署代码,我们首先将代码压缩,然后采用 SFTP 或 FTP 的方式将 文件上传到服务器,之后再连接服务器将文件解压,每个服务器都需要这样配置。

2.如果采用 Git 同步的方式部署代码,我们可以先把代码 Push 到某个 Git仓库里,然后再远程连 接各台主机执行 Pull 操作,同步代码,每个服务器同样需要做一次操作。

了解 Scrapyd

Scrapyd 是一个运行 Scrapy 爬虫的服务程序,它提供一系列 HπP 接口来帮助我们部署、启动、 停止、删除爬虫程序。 Scrapyd 支持版本管理, 同时还可以管理多个爬虫任务,利用它我们可以非常 方便地完成 Scrapy 爬虫项目的部署任务调度。

Scrapyd 的功能

Scrapyd 提供了一系列 HTTP 接口来实现各种操作。 用curl进行执行

Scrapyd-Client 为了方便 Scrapy 项目的部署

1. 将项目打包成 Egg 文件。

2. 将’打包生成的 Egg 文件通过 addversion.json 接口部署到 Scrapyd 上。

执行打包命令: scrapyd-deploy 部署名称 -p 项目名称

curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称

停止爬虫

curl http://localhost:6800/cancel.json -dproject=scrapy项目名称 -d job=运行ID

删除scrapy项目

注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫

curl http://localhost:6800/delproject.json-d project=scrapy项目名称

查看有多少个scrapy项目在api中

curl http://localhost:6800/listprojects.json


查看指定的scrapy项目中有多少个爬虫

你可能感兴趣的:(如何通过 Scrapyd + ScrapydWeb 简单高效地部署和监控分布式爬虫项目)