这里有现成的工具来完成部署过程,它叫做Scrapyd-Client。本节将简单介绍使用Scrapyd-Client部署Scrapy项目的方法。
html
请先确保Scrapyd-Client已经正确安装。
node
Scrapyd-Client为了方便Scrapy项目的部署,提供以下两个功能。
json
将项目打包成Egg文件。bash
将打包生成的Egg文件经过addversion.json接口部署到Scrapyd上。微信
Scrapyd-Client帮咱们把部署所有实现了,咱们不须要再去关心Egg文件是怎样生成的,也不须要再去读Egg文件并请求接口上传了,只须要执行一个命令便可一键部署。网络
要部署Scrapy项目,咱们首先须要修改项目的配置文件。例如以前写的Scrapy微博爬虫项目,在项目的第一层会有一个scrapy.cfg文件,它的内容以下:
scrapy
[settings]
default = weibo.settings
[deploy]
#url = http://localhost:6800/
project = weibo复制代码
这里须要配置一下deploy
部分。例如咱们将项目部署到120.27.34.25的Scrapyd上,则修改内容以下:ide
[deploy]
url = http://120.27.34.25:6800/
project = weibo复制代码
这样咱们再在scrapy.cfg文件所在路径执行以下命令:工具
scrapyd-deploy复制代码
运行结果以下:ui
Packing version 1501682277
Deploying to project "weibo" in http://120.27.34.25:6800/addversion.json
Server response (200):
{"status": "ok", "spiders": 1, "node_name": "datacrawl-vm", "project": "weibo", "version": "1501682277"}复制代码
返回的结果表示部署成功了。
项目版本默认为当前时间戳。咱们也能够指定项目版本,经过version
参数传递便可。例如:
scrapyd-deploy --version 201707131455复制代码
值得注意的是,在Python 3的Scrapyd 1.2.0版本中,版本号不能指定为带字母的字符串,它们必须为纯数字,不然会出现报错。
若是有多台主机,咱们能够配置各台主机的别名,修改配置文件为:
[deploy:vm1]
url = http://120.27.34.24:6800/
project = weibo
[deploy:vm2]
url = http://139.217.26.30:6800/
project = weibo复制代码
在此统一配置多台主机,一台主机对应一组配置,在deploy
后面加上主机的别名便可。若是想将项目部署到IP为139.217.26.30的vm2主机,咱们只须要执行以下命令:
scrapyd-deploy vm2复制代码
如此一来,咱们只须要在scrapy.cfg文件中配置好各台主机的Scrapyd地址,而后调用scrapyd-deploy命令加主机名称便可实现部署。
若是Scrapyd设置了访问限制,咱们能够在配置文件中加入用户名和密码的配置,同时修改端口成Nginx代理端口。例如,在第1章咱们使用的是6801,那么这里就须要改为6801,修改以下:
[deploy:vm1]
url = http://120.27.34.24:6801/
project = weibo
username = admin
password = admin
[deploy:vm2]
url = http://139.217.26.30:6801/
project = weibo
username = germey
password = germey复制代码
经过加入username
和password
字段,咱们就能够在部署时自动进行Auth验证,而后成功实现部署。
本节介绍了利用Scrapyd-Client来方便地将项目部署到Scrapyd的过程,有了它部署再也不是麻烦事。
本资源首发于崔庆才的我的博客静觅: Python3网络爬虫开发实战教程 | 静觅
如想了解更多爬虫资讯,请关注个人我的微信公众号:进击的Coder
weixin.qq.com/r/5zsjOyvEZ… (二维码自动识别)