欢迎关注哈希大数据微信公众号【哈希大数据】
scrapy分布式部署
之前我们启动scrapy爬虫的时候都是用命令行,这个不是很方便,如果有多个爬虫时不便于管理。本次给大家分享很好用的管理scrapy的第三方库scrapyd,Scrapyd是scrapinghub官方提供的爬虫管理、部署、监控的方案。接下来我们将从安装、配置、使用这三方面介绍如何使用scrapyd。
安装
安装scrapyd
pip install scrapyd
安装scrapyd-client
pip install scrapyd-client
这里之所以安装scrapyd-client,是因为直接利用scrapyd部署项目是需要自己手动把项目打包成egging文件,过程比较繁琐,利用scrapyd-client可以很简单的完成部署。
注意:安装完scrapyd-client可能出现不能使用的情况,此时在
你的python\Script下创建一个scrapyd-deploy.bat文件,填写内容为:
@echo off
"F:\project\simulate_browser\venv\Scripts\python.exe" "F:\project\simulate_browser\venv\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
将上面路径替换为你的python.exe文件和scrapyd-deploy所在路径。
然后就OK了。
项目部署
(1)运行scrapyd
首先切换命令行路径到Scrapy项目的根目录下,在命令行里执行scrapyd,将scrapyd运行起来。就会如下图所示:
此时打开url = http://localhost:6800/网址将看到如下网页:
(2)发布项目到scrapyd
首先配置scrapy.cfg
在scrapy.cfg中,取消#url = http://localhost:6800/前面的“#”
然后在项目根目录下新开命令窗口输入:
scrapyd-deploy -p <scrapy项目名称>
如下图:
启动、停止、查看爬虫
此时如果你未关闭第2步运行scrapyd的命令窗口,直接利用如下命令行启动爬虫:
curl http://localhost:6800/schedule.json -d project=myproject -d spider=spider2
如果关闭了第2步运行scrapyd的命令窗口,此时同步骤1再次启动scrapyd,然后利用上面的命令启动爬虫。
此时我们打开http://localhost:6800/,点击jobs,可以看到如下网页:
如上图所示我们一次可以启动多个爬虫。经过一段时间的运行所有爬虫运行完毕如下图所示:
我们还可以中途停止正在运行的爬虫,命令如下:
curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID
其中JOB_ID可以通过上图中的job列获得,非常的方便。
更多的API大家可参考:http://scrapyd.readthedocs.io/en/latest/api.html
小结
此前我们介绍了几个利用scrapy爬取各类信息的实例,随着爬虫数量的增加,爬虫任务量的增加。我们需要采用分布式的结构来运行我们的爬虫,此时如何统一管理、部署、监控就是一个比较难办的问题,这里我们介绍了一个scrapyd库,来解决以上问题。本文主要从安装、项目部署、具体如何使用三方面介绍了该库。