爬虫部署-1,服务端安装使用scrapyd,客户端安装scrapy-client,利用scrapy-client 发布爬虫到远程服务端

####

服务端安装使用scrapyd

下面的操作是在远程的服务器操作,

1,创建虚拟环境  ,虚拟环境名为sd

2,pip3 install scrapyd

3. 配置

mkdir /etc/scrapyd

vim /etc/scrapyd/scrapyd.conf

4,写入一下配置

参考官网:https://scrapyd.readthedocs.io/en/stable/config.html#config

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
#bind_address = 127.0.0.1  
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

###

bind_address:默认是本地127.0.0.1,修改为0.0.0.0,可以让外网访问。

一. 部署&运行
deploy: 部署scrapy爬虫程序

# scrapyd-deploy  部署服务器名 -p 项目名称
scrapyd-deploy  ubuntu -p douyu
run : 运行

#curl http://localhost:6800/schedule.json -d project=project_name -d spider=spider_name
curl http://127.0.0.1:6800/schedule.json -d project=douyu -d spider=dy
stop: 停止

#curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid
curl http://127.0.0.1:6800/cancel.json -d project=douyu -d job=$1
 

二. 允许外部访问配置
定位配置文件: default_scrapyd.conf
find /home/wg -name default_scrapyd.conf
cd /home/wg/scrapy_env/lib/python3.6/site-packages/scrapyd
允许外部访问:
vim default_scrapyd.conf
bind_address = 0.0.0.0
三. 远程监控-url指令: 1、获取状态 http://127.0.0.1:6800/daemonstatus.json 2、获取项目列表 http://127.0.0.1:6800/listprojects.json 3、获取项目下已发布的爬虫列表 http://127.0.0.1:6800/listspiders.json?project=myproject 4、获取项目下已发布的爬虫版本列表 http://127.0.0.1:6800/listversions.json?project=myproject 5、获取爬虫运行状态 http://127.0.0.1:6800/listjobs.json?project=myproject 6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫) http://127.0.0.1:6800/schedule.json (post方式,data={"project":myproject,"spider":myspider}) 7、删除某一版本爬虫 http://127.0.0.1:6800/delversion.json(post方式,data={"project":myproject,"version":myversion})
8、删除某一工程,包括该工程下的各版本爬虫 http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject}) 四. 常用脚本 循环任务: while true do curl http://127.0.0.1:6800/schedule.json -d project=FXH -d spider=five_sec_info sleep 10 done 实时时间打印: echo "$(date +%Y-%m-%d:%H:%M.%S), xx-spider定时启动--"

#####

启动:

scrapyd

查看服务器本机ip,获取到ip地址,

浏览器中访问:

192.168.12.80:6800

能正常访问就说明这个成功了,

#####

客户端安装安装scrapyd-client

1. 安装scrapyd-client

pip3 install scrapyd-client

2.验证是否安装成功,

安装成功后会有一个可用命令,叫作scrapyd-deploy,即部署命令。

我们可以输入如下测试命令测试Scrapyd-Client是否安装成功:

3. crapyd-deploy 不是内部命令,所以需要进行项目配置

windows下的scrapyd-deploy无法运行的解决办法
.进到c:/python/Scripts 目录下,创建两个新文件:
scrapy.bat
scrapyd-deploy.bat

编辑两个文件:
scrapy.bat文件中输入以下内容 :

@echo off
"C:\Python36" "C:\Python36\Scripts\scrapy" %*

scrapyd-deploy.bat 文件中输入以下内容:
@echo off
"C:\Python36\python" "C:\Python36\Scripts\scrapyd-deploy" %*

#####

 4.再次查看

这样就可以了,

利用scrapy-client 发布爬虫到远程服务端

远程服务端Scrapyd先要开启

远程服务器必须装有scapyd,并开启。

###

客户端配置和上传 

先修爬虫项目文件scrapy.cfg:如下图

cd  到爬虫项目文件夹下,后执行:

scrapyd-deploy       # 上传

scrapyd-deploy  -l       #  查看

 

打包项目

1、打包前先查看项目下的爬虫文件:

说明可以开始打包了

2.执行打包命令:

scrapyd-deploy  部署名称  -p  项目名称

上面表示打包成功。

以下是可能出现的问题,以及解决方案:

如果出现后端报错和scrapyd前端页面报错,解决方案:

scrapyd 前端报错:

 

修改远程服务器(192.168.12.80)上的Twisted的版本改为 18.9.0

 pip3 install Twisted==18.9.0

 

 重启 Scrapyd:

在访问192.168.12.80:6800/jobs,正常显示:

 3.上传运行爬虫

curl http://远程ip:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
如:
curl http://192.168.12.80:6800/schedule.json -d project=circ -d spider=bjh

 

说明部署成功:

 

 scrapyd部署已经完成了。

管理 

1、停止爬虫

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

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

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

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

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

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

curl http://localhost:6800/listspiders.json?project=scrapy项目名称

5总结几个请求url,通过在浏览器输入,也可以监控爬虫进程。

例子:地址栏访问 :http://192.168.12.80:6800/daemonstatus.json,获取到一下页面

 

#####

 

posted @ 2021-10-10 12:57  技术改变命运Andy  阅读(264)  评论(0编辑  收藏  举报