文章目录

  • 一、关于 spiderkeeper
    • 安装
  • 二、使用
    • 1、运行 spiderkeeper
    • 2、项目生成.egg文件
    • 3、启动 scrapyd
  • 三、管理项目
    • 1、访问管理界面
    • 2、创建项目
    • 3、上传刚生成的 egg 文件
    • 4、查看爬虫
  • 四、管理任务
    • 1、添加定时任务
    • 2、查看任务状态
  • 五、服务器部署
    • 1、单台服务器
    • 2、多台服务器
  • 六、更改用户名、密码、端口号
    • 1、config.py 更改用户名&密码
    • 2、run.py 更改端口号
  • 参考

一、关于 spiderkeeper

Github: https://github.com/DormyMo/SpiderKeeper

官方描述:A scalable admin ui for spider service

  • Manage your spiders from a dashboard. Schedule them to run automatically
  • With a single click deploy the scrapy project
  • Show spider running stats
  • Provide api

api: http://localhost:5000/api.html


安装

(base) $ sudo pip install spiderkeeper
(base) $ sudo pip install scrapy_reids # 缺少它可能会报莫名错误

二、使用


1、运行 spiderkeeper

进入虚拟环境后,输入 spiderkeeper 即可运行

(base) $ spiderkeeper
/Users/xx/opt/anaconda3/lib/python3.7/site-packages/flask_restful_swagger/swagger.py:14: ExtDeprecationWarning: Importing flask.ext.restful is deprecated, use flask_restful instead.from flask.ext.restful import Resource, fields
--------------------------------------------------------------------------------
INFO in run [/Users/xx/opt/anaconda3/lib/python3.7/site-packages/SpiderKeeper/run.py:22]:
SpiderKeeper startd on 0.0.0.0:5000 username:admin/password:admin with scrapyd servers:http://localhost:6800
--------------------------------------------------------------------------------
2021-06-24 21:22:59,765 - SpiderKeeper.app - INFO - SpiderKeeper startd on 0.0.0.0:5000 username:admin/password:admin with scrapyd servers:http://localhost:6800

注意这里的 username:admin/password:admin,后续访问管理界面时,需要输入这个账号(admin)和密码(admin)。


2、项目生成.egg文件

使用scrapyd打包你的项目生成.egg文件,以便后面传到spiderkeeper上面

$ scrapyd-deploy --build-egg news.egg

3、启动 scrapyd

终端进入项目目录,输入scrapyd 启动

$ scrapyd

三、管理项目

1、访问管理界面

访问网站:http://127.0.0.1:5000/api.html


2、创建项目

点击 Deploy,这里可以上传项目的 egg 文件。(刚才生成的,你也可以根究提示再次生成)


3、上传刚生成的 egg 文件


项目添加成功,可以再次点击 manage 来查看;

你也可以在列表中,点击下方的 delete 删除。


4、查看爬虫

点击 Dashboard (仪表盘) ,这里会显示你工程中的所有爬虫;


四、管理任务

1、添加定时任务

左侧目录点击 Periodic Jobs;进入此页后,点击右上角 Add Job 按钮,将弹出定时执行的窗口。

添加完成后,也可以在列表 点击 run来直接运行;


2、查看任务状态

点击 Dashboard 仪表盘,可以看到 下个/正在运行/已经完成 的任务;

点击 Log 可以看到执行日志;(spiderkeeper封装了 scrapyd 的 log 接口)

如果想把监控部署在网络上,项目目录下scrapy.cfg中的url需要配置成0.0.0.0;设置完需要重启 scrapyd。


五、服务器部署

1、单台服务器

启动单台服务器,默认启动本地的 http://localhost:6800 scrapyd的服务
spiderkeeper的默认端口为5000.

$ sudo spiderkeeper

2、多台服务器

在分布式中我们的服务器中肯定不止一台,使用spiderkeeper可以很好的解决这个问题

$ sudo spiderkeeper --server=http://localhost:6800 --server=http://111.111.111.111:6800 #启动一个spiderkeeper可以同时部署两台服务器的spider

六、更改用户名、密码、端口号

1、config.py 更改用户名&密码

# Statement for enabling the development environment
import osDEBUG = True# Define the application directoryBASE_DIR = os.path.abspath(os.path.dirname(__file__))SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(os.path.abspath('.'), 'SpiderKeeper.db')
SQLALCHEMY_TRACK_MODIFICATIONS = False
DATABASE_CONNECT_OPTIONS = {}# Application threads. A common general assumption is
# using 2 per available processor cores - to handle
# incoming requests using one and performing background
# operations using the other.
THREADS_PER_PAGE = 2# Enable protection agains *Cross-site Request Forgery (CSRF)*
CSRF_ENABLED = True# Use a secure, unique and absolutely secret key for
# signing the data.
CSRF_SESSION_KEY = "secret"# Secret key for signing cookies
SECRET_KEY = "secret"# log
LOG_LEVEL = 'INFO'# spider services
SERVER_TYPE = 'scrapyd'
SERVERS = ['http://localhost:6800']# basic auth 这里更改用户名&密码
NO_AUTH = False
BASIC_AUTH_USERNAME = 'admin'
BASIC_AUTH_PASSWORD = 'admin'
BASIC_AUTH_FORCE = True

2、run.py 更改端口号

def parse_opts(config):parser = OptionParser(usage="%prog [options]",description="Admin ui for spider service")parser.add_option("--host",help="host, default:0.0.0.0", dest='host',default='0.0.0.0')#bind ip 绑定ip 默认全部人可以访问parser.add_option("--port",help="port, default:5000", dest='port',type="int",default=5000)#默认端口号5000 可以根据你的需求设计parser.add_option("--username",help="basic auth username ,default: %s" % config.get('BASIC_AUTH_USERNAME'),dest='username',default=config.get('BASIC_AUTH_USERNAME'))parser.add_option("--password",help="basic auth password ,default: %s" % config.get('BASIC_AUTH_PASSWORD'),dest='password',default=config.get('BASIC_AUTH_PASSWORD'))parser.add_option("--type",help="access spider server type, default: %s" % config.get('SERVER_TYPE'),dest='server_type',default=config.get('SERVER_TYPE'))parser.add_option("--server",help="servers, default: %s" % config.get('SERVERS'),dest='servers',action='append',default=[])parser.add_option("--database-url",help='SpiderKeeper metadata database default: %s' % config.get('SQLALCHEMY_DATABASE_URI'),dest='database_url',default=config.get('SQLALCHEMY_DATABASE_URI'))parser.add_option("--no-auth",help="disable basic auth",dest='no_auth',action='store_true')parser.add_option("-v", "--verbose",help="log level",dest='verbose',action='store_true')return parser.parse_args()

参考

  • 俊采星驰_87e0
    https://www.jianshu.com/p/590edb0c340a

spiderkeeper 管理scrapy爬虫(定时执行)相关推荐

  1. Linux环境下使用scrapyd+spiderkeeper部署scrapy爬虫

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 项目场景: 当我们入手爬虫工作的时候,一开始可能就是几个爬虫,我们可以手动调度部署,日积月累后,可能从十个到一百个 ...

  2. python 定时执行 爬虫 模块_浅析python实现scrapy定时执行爬虫

    项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py ,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行. 最简单的方法:直接使用Timer类 ...

  3. python每天定时9点执行_[求助]关于twisted框架,如何每天定时执行一个scrapy爬虫...

    RT,最近在学scrapy,写了一个简单的爬取网页数据的爬虫,利用CrawlProcess单次调用执行的时候没有问题,脚本如下,就是清空数据表然后爬取数据: class updateBoardData ...

  4. 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行

    本文介绍了如何把windows下面的scrapy脚本部署到AWS Ubuntu上,并使用crontab定时执行. 我的scrapy爬虫原来部署在windows服务器,爬虫每个小时从几个字幕网站爬字幕. ...

  5. python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  6. python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  7. Scrapy爬虫项目的管理部署

    前言 为了方便对爬虫项目的流程化管理,需要一款合适的工具.主要实现的功能有: 能对爬虫项目的管理做到"统一"."稳定"."方便": 能够查看 ...

  8. python自动抓取网管软件的数据_python实现scrapy爬虫每天定时抓取数据的示例代码...

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  9. python实现scrapy爬虫每天定时抓取数据

    python实现scrapy爬虫每天定时抓取数据 1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程 ...

最新文章

  1. 院士论坛|李德仁:测绘遥感与智能驾驶
  2. boost::mp11::mp_bind_front_q相关用法的测试程序
  3. Java方法的静态绑定与动态绑定讲解
  4. Factory Method(工厂方法)--对象创建型模式
  5. Codeforces Global Round 12 D. Rating Compression 思维 + 贪心
  6. CF891C-Envy【可撤销并查集】
  7. mysql 通过echo的方式写入数据库 中文乱码解决方案
  8. ubuntu tomcat上传目录权限_等了 3 年,Ubuntu Studio 终于有权限上传更新包
  9. mysql server再次安装失败_MySQL在windows上多次安装失败
  10. [Python] 更改矩阵形状:reshape(m,n)、view(m,n)和view_as(tensor)
  11. 如何提取明细表头_超全!197页建筑工程预算实例教程+241页预算明细表,造价轻松算...
  12. Python 之 str 、 repr 、 反引号(``)的区别
  13. 送你一份有态度的红包封面!
  14. 使用Mapviz,进行机器人GPS轨迹卫星地图绘制(2)-调用天地图API,快速加载刷新地图
  15. php微信公众号发送邮件,GitHub - DongDavid/notify: 消息发送组件-邮件、微信公众号、企业微信、小程序...
  16. Lab 3:自行车码表
  17. Normalized Gini Coefficient
  18. 和程序员薪酬差不多的工作
  19. powershell 结束进程的四种写法
  20. CSU1020-真三国无双-模拟

热门文章

  1. ps中如何把图片变白底
  2. 关于静态变量的缺省值
  3. 为什么要用PolyFill(JS中的修补匠)
  4. postgresql实现存在则更新,不存在则插入
  5. 算术编码原理及其python实现
  6. 企业微信---第三方应用开发 笔记
  7. 计算机领域职业简介-PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD,PRD,FSD等缩写的全称解析
  8. 转:『诡异的』VL10B创建外向交货单出错解决全过程
  9. Unity3D-游戏ARVR开发进阶课程 - 动画系统-宋晓波-专题视频课程
  10. 【架构风格】架构风格演进和领域架构分类