环境安装
使用scrapyd和scrapyd_client进行部署,
过程为用户在客户端使用scrapyd_client将爬虫项目通过命令部署到服务器端scrapyd。
1.服务器端:
安装scrapyd:
pip3 install scrapyd
安装完成后,在python/scrips下会有一个scrapy.exe,这时cmd输入scrapyd即可启动服务,在客户端电脑上即可通过ip:6800访问可视化界面。操作者可以通过cmd 使用curl命令或者直接浏览器访问对scrapyd部署的项目进行操作。
常用操作命令有:
- daemonstatus.json:查看scrapyd当前的服务和任务状态。
curl http://127.0.0.1:6800/daemonstatus.json
- addversion.json:部署项目。
curl http://127.0.0.1:6800/addversion.json -F project=项目名 -F version=版本号 -F egg=@xxx.egg
这里每一个-F代表一个参数,首先需要将项目打包成.egg文件 - scheldule.json:运行爬虫。
curl http://127.0.0.1:6800/scheldule.json -d project=项目名 -d spider=爬虫项目里的spider name
- cancel.json:取消爬虫。
curl http://127.0.0.1:6800/cancel.json -d project=项目名 -d job=爬虫任务代号
通过scrapyd部署有点麻烦,因为需要先打包爬虫到本地然后再上传,scrapy_client就比较方便了
2.客户端
scrapy-client,它允许我们将本地的scrapy项目打包发送到scrapyd 这个服务端
安装 scrapy-client:
pip3 install scrapy-client
在你的scrapy项目文件下有一个scrapy.cfg文件:
- 注释掉url,这里配置好目标服务器的ip
- project即为项目名
- deploy:xx中的xx即为多台主机的别名
使用时,cmd输入scrapyd-deploy命令,如果是win主机需要在python的scripts目录中新建scrapyd-deploy.bat,并添加以下代码,否则报错:
@echo off
"C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\python.exe" "C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
路径改成自己的
在客户端cmd中进入项目路径,cmd输入scrapyd-deploy,显示
代表成功执行了scrapyd-deploy
如果想把项目部署到别名为‘wb’的主机上,即可cmd输入scrapyd-deploy wb -p 项目名
部署好之后便可使用curl命令
curl http://127.0.0.1:6800/scheldule.json -d project=项目名 -d spider=spider name
运行爬虫