python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)

文章目录

  • 前言
  • 1 Gerapy
    • 1.1 依赖获取
    • 1.2 部署流程
    • 1.2.1 Gerapy初始化
    • 1.2.2 Scrapyd服务启动
    • 1.2.3 Gerapy平台管理
    • 1.3 存在问题
  • 2 Crawlab
    • 2.1 依赖获取
    • 2.2 部署流程
  • 3 Scrapydweb
    • 3.1 依赖获取
    • 3.2 部署流程
      • 3.2.1 Scrapydweb服务启动
      • 3.2.2 Scrapydweb平台管理
  • 4 SpiderKeeper
    • 4.1 依赖获取
    • 4.2 部署流程

参考资料

  • 如何快速搭建实用的爬虫管理平台
  • 跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!

前言

Gerapy、Crawlab、Scrapydweb和SpiderKeeper四大爬虫管理平台优缺点详见下表。

平台 缺点 优点 推荐指数
Gerapy 现版本bug较多 UI 精美、节点管理、代码编辑、规则可配、持续优化 ★★★★
Crawlab 部署麻烦、不支持配置规则 UI 精美、不限语言及框架、数据统计、节点管理、爬虫管理、任务管理、定时任务 ★★★★
Scrapydweb 仅支持scrapy、Flask性能差 UI 精美、节点管理、代码编辑、规则可配、定时任务 ★★★
SpiderKeeper 仅支持scrapy、不可分页、更新缓慢 UI 界面、定时任务 ★★

1 Gerapy

Gerapyhttps://github.com/Gerapy/Gerapy

依赖 版本
Django 1.11.29(暂不支持1.x以上版本)
Scrapyd 1.2.1

1.1 依赖获取

E:\Python\Scripts>pip install scrapyd -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

E:\Python\Scripts>pip install scrapyd-client -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

E:\Python\Scripts>pip install django==1.11.29 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

E:\Python\Scripts>pip install gerapy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

1.2 部署流程

1.2.1 Gerapy初始化

注: 初始化路径自定义

# 路径初始化
F:\test>gerapy init
Initialized workspace gerapy

# 数据库初始化
F:\test>cd gerapy
F:\test\gerapy>gerapy migrate

# 创建超级管理员,注:密码不得低于8位
F:\test\gerapy>gerapy createsuperuser

# 服务启动
F:\test\gerapy>gerapy runserver

# 退出服务
# ctrl + c

1.2.2 Scrapyd服务启动

注:若未配置环境变量,需要前往python安装目录下的scripts路径启动scrapyd

E:\Python\Scripts>scrapyd
2020-08-19T10:45:46+0800 [-] Loading e:\python\lib\site-packages\scrapyd\txapp.py...
2020-08-19T10:45:48+0800 [-] Scrapyd web console available at http://127.0.0.1:6800/
2020-08-19T10:45:48+0800 [-] Loaded.
2020-08-19T10:45:48+0800 [twisted.application.app.AppLogger#info] twistd 20.3.0 (e:\python\python.exe 3.6.6) starting up.
2020-08-19T10:45:48+0800 [twisted.application.app.AppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.
2020-08-19T10:45:48+0800 [-] Site starting on 6800
2020-08-19T10:45:48+0800 [twisted.web.server.Site#info] Starting factory 
2020-08-19T10:45:48+0800 [Launcher] Scrapyd 1.2.1 started: max_proc=32, runner='scrapyd.runner'

1.2.3 Gerapy平台管理

注:Gerapy主界面主机管理,必须添加Scrapyd 远程服务才能状态正常,因此,需要事先启动Scrapyd服务

python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第1张图片
python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第2张图片

(1)主机管理
python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第3张图片
python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第4张图片
(2)项目管理

  • 添加scrapy项目文件到gerapy/projects文件路径
    python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第5张图片
    python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第6张图片

  • 打包准备
    将scrapy项目scrapy.cfg文件作如下修改:
    python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第7张图片

  • 打包部署
    项目完成打包后,点击部署即可完成
    python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第8张图片

(3)任务管理

1.3 存在问题

(1)windows在Gerapy中进行项目部署时,项目打包失败?

问题分析:在所有部署流程无误情况下,如果linux可以正常运行,windows报错,考虑为文件错误

解决方法:参考使用gerapy部署scrapy爬虫项目 ,当项目打包失败后,可借助scrapy-client进行打包,具体可参考Python在Windows系统下基于Scrapyd部署爬虫项目(本地部署),最后,在主机管理中,直接点击调度即可运行。

python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第9张图片


(2)Gerapy调用Scrapyd api可将爬虫数据存储到数据库,无法完成本地文件存储(如csv、excel等),但Scrapy项目单独执行可生成?

问题分析:Scrapyd自身局限性导致

解决方法

未完待续。。。

2 Crawlab

2.1 依赖获取

2.2 部署流程

3 Scrapydweb

Scrapydwebhttps://github.com/my8100/scrapydweb

依赖 版本
Flask 1.0.2
Flask-SQLAlchemy 2.4.4
Scrapyd 1.2.1

3.1 依赖获取

E:\Python\Scripts>pip install scrapyd -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

E:\Python\Scripts>pip install scrapyd-client -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

E:\Python\Scripts>pip install scrapydweb -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

3.2 部署流程

3.2.1 Scrapydweb服务启动

开启两个DOS窗口,依次调起Scrapyd和Scrapydweb服务

python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第10张图片
python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第11张图片

最终效果如下图所示:
python爬虫(四):分布式爬虫管理平台(Gerapy、Crawlab、Scrapydweb和SpiderKeeper)_第12张图片

3.2.2 Scrapydweb平台管理

4 SpiderKeeper

4.1 依赖获取

4.2 部署流程

你可能感兴趣的:(爬虫,python,爬虫)