通过Scrapyd来部署爬虫程序是目前主要的爬虫部署方式,下面我们来看看如何通过scrapd将爬虫程序部署在Windows系统服务器上。
首先在虚拟环境下安装两个包:
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
pipinstallscrapyd==1.1.1pipinstallscrapyd-client
安装 scrapyd 时请指定安装1.1.1 版本不然后面会出错,具体原因不明。另外为了以后能更方便启虚拟环境你可以按以下方法建一个批处理文件 xxx.bat,以后要想在哪个目录下启动虚拟环境双击这个文件就行了:
@echooffcmd/k你的虚拟环境绝对路径\Scripts\activate
然后在虚拟环境下启动 Scrapyd 服务
这个时候浏览器访问:
localhost:6800
然后我们部署爬虫项目
先将项目中的 scrapy.cfg 修改:
去掉url前的 #
在deploy后面添加冒号以及任意名称
然后在项目文件目录下启动虚拟环境,运行:
pythonscrapyd-deploydeploy名称-p项目名称-v设定版本python你的虚拟环境绝对路径\Scripts\scrapyd-deployhello-pscrapy_project
我们要启动爬虫要用到 curl 命令,还要到网上安装下 curl :
解压文件后将I386 文件夹下的 CURL.EXE 移动到:
C:\Windows\System32
然后你就可以在任意位置使用 curl命令。
启动爬虫:
curlhttp://localhost:6800/schedule.json-dproject=项目名称-dspider=爬虫名称curlhttp://localhost:6800/schedule.json-dproject=scrapy_project-dspider=quotes
点击localhost:6800页面的 Jobs 查看运行状态,以及日志文件。
运行中:
完成状态:
另外保存的数据文件位于你启动 Scrapyd 的那个目录下面。
在本地实践好后,如果你有云服务器也可以安装这样的方法部署,然后再防火墙中添加入站规则即可:
以后就可以远程控制爬虫的启动。
获取项目列表http://127.0.0.1:6800/listprojects.json获取scrapy_project项目下的爬虫列表http://127.0.0.1:6800/listspiders.json?project=scrapy_project获取scrapy_project项目下已发布的爬虫版本列表http://127.0.0.1:6800/listversions.json?project=scrapy_project获取爬虫运行状态http://127.0.0.1:6800/listjobs.json?project=scrapy_project
以下均为POST 方式
启动爬虫
http://localhost:6800/schedule.json,data={"project":myproject,"spider":myspider}
取消爬虫运行
http://localhost:6800/cancel.json,data={"project":"myproject","job":"6487ec79947edab326d6db28a2d86511e8247444"
删除版本
http://localhost:6800/delversion.json,data={"project":"myproject","version":"r99"}
删除项目
http://127.0.0.1:6800/delproject.json,data={"project":myproject}