携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
写在前面
本篇博客内容其实和上一篇涉及的内容类似,都是爬虫管理平台。你可以通过搜索引擎找到爬虫管理平台的定义:
爬虫管理平台是一个一站式管理系统,集爬虫部署、任务调度、任务监控、结果展示等模块于一体,通常配有可视化 UI 界面,可以在 Web 端通过与 UI 界面交互来有效管理爬虫。爬虫管理平台一般来说是支持分布式的,可以在多台机器上协作运行。
目前在市场上流通的一些开源爬虫管理平台如下
Scrapydweb上篇博客介绍的,采用Flask+VUE实现,UI比较美观,支持scrapy日志解析、节点管理、定时任务、邮件提醒等功能,但是不支持scrapy以外的其他爬虫,比较遗憾。SpiderKeeper本篇博客待介绍的,基于scrapyd,开源版的scrapyhub,同样不支持scrapy以外的爬虫。Gerapy采用Django+VUE实现,该平台国内大佬开发,UI美观,支持的功能与Scrapydweb类似,后面单独写一篇博客给大家介绍一下。Grawlab采用Golang+VUE实现,该平台不局限于scrapy了,可以运行各种爬虫,不过部署比较复杂,后面依旧单独写一篇博客给大家分享。
spiderkeeper官网
github地址:github.com/DormyMo/Spi…
编写爬虫,搭建spiderkeeper
我们依旧采用scrapy写一个简单的爬虫,该步骤自行完成吧,我这里省略了。
安装spiderkeeper
通过命令
pip install spiderkeeper -i pypi.douban.com/simple
执行之后,发现果然一次成功永远都是难得的,错误如图,核心的内容就是
ImportError: cannot import name 'Feature' from 'setuptools'
该错误是因为我们的setuptools高于46.0版本,降低一下setuptools即可解决问题
pip install --upgrade pip setuptools==45.2.0 -i pypi.douban.com/simple
这个是因为spiderkeeper比较老的原因,建议后续自行在更新回去,例如我在安装之后就出现了如下问题,提示我很多模块的版本都降低了,对scrapyweb产生了影响。
其他你还需要安装的模块如下,安装内容可以参考第82与83篇博客内容
pip install scrapy
pip install scrapyd
pip install scrapyd-client
运行scrapyd
命令行运行scrapyd,注意必须在scrapy.cfg目录运行,打开浏览器地址 http://127.0.0.1:6800/
再另起窗口执行spiderkeeper命令
命令行运行 spiderkeeper,正确运行如下图所示,打开浏览器访问http://127.0.0.1:5000 输入账号admin和密码admin即可登录成功。
创建项目
点击页面右侧中心的Create Project,出现下图
打包egg文件
在scrapy的项目根目录,也就是和setting.py一个目录,运行下述命令,baidu2020-09-01.egg 是egg名字,可以自行起名
scrapyd-deploy --build-egg baidu2020-09-01.egg
这步操作,有的人喜欢叫做 “生蛋”
上传egg文件到项目
网页文件上传操作,非常简单
执行项目
点击Dashboard然后点击Runonce选择对于的爬虫文件运行即可。注意这个地方需要手动刷新一下页面,才可以看到下图。
查看日志
在Dashboard页面点击log即可查阅日志
Periodic Jobs
注意到左侧还有一个Periodic Jobs,该模块是定时任务,点击右上角的addjobs后可以添加任务,除了之前有的选项之后还可以设置每个月/每星期/每天/每小时/每分钟的定时爬虫
Running Stats
查看爬虫的运行情况
连接多台scrapyd服务器
在分布式中,服务器肯定不止一台,使用spiderkeeper可以快速部署到多台服务器,参考命令
spiderkeeper --server=http://222.222.222.222:6800 --server=http://111.111.111.111:6800
更改用户名&密码&更改端口号
刚才我们访问spiderkeeper的账号和密码是admin,该内容可以修改,找到模块安装路径,例如我本地的安装地址为
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\SpiderKeeper
修改config.py文件之后,重启spiderkeeper即可
run.py更改端口号
写在后面
作为爬虫管理平台的spiderkeeper在功能上保证了基本功能的可用,搭建过程与界面UI整体体验还可以,大家可以自行试一下。