spiderkeeper 管理scrapy爬虫(定时执行)
文章目录
- 一、关于 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爬虫(定时执行)相关推荐
- Linux环境下使用scrapyd+spiderkeeper部署scrapy爬虫
声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 项目场景: 当我们入手爬虫工作的时候,一开始可能就是几个爬虫,我们可以手动调度部署,日积月累后,可能从十个到一百个 ...
- python 定时执行 爬虫 模块_浅析python实现scrapy定时执行爬虫
项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py ,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行. 最简单的方法:直接使用Timer类 ...
- python每天定时9点执行_[求助]关于twisted框架,如何每天定时执行一个scrapy爬虫...
RT,最近在学scrapy,写了一个简单的爬取网页数据的爬虫,利用CrawlProcess单次调用执行的时候没有问题,脚本如下,就是清空数据表然后爬取数据: class updateBoardData ...
- 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行
本文介绍了如何把windows下面的scrapy脚本部署到AWS Ubuntu上,并使用crontab定时执行. 我的scrapy爬虫原来部署在windows服务器,爬虫每个小时从几个字幕网站爬字幕. ...
- python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python定时爬取数据_python实现scrapy爬虫每天定时抓取数据的示例代码
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- Scrapy爬虫项目的管理部署
前言 为了方便对爬虫项目的流程化管理,需要一款合适的工具.主要实现的功能有: 能对爬虫项目的管理做到"统一"."稳定"."方便": 能够查看 ...
- python自动抓取网管软件的数据_python实现scrapy爬虫每天定时抓取数据的示例代码...
1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...
- python实现scrapy爬虫每天定时抓取数据
python实现scrapy爬虫每天定时抓取数据 1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程 ...
最新文章
- 院士论坛|李德仁:测绘遥感与智能驾驶
- boost::mp11::mp_bind_front_q相关用法的测试程序
- Java方法的静态绑定与动态绑定讲解
- Factory Method(工厂方法)--对象创建型模式
- Codeforces Global Round 12 D. Rating Compression 思维 + 贪心
- CF891C-Envy【可撤销并查集】
- mysql 通过echo的方式写入数据库 中文乱码解决方案
- ubuntu tomcat上传目录权限_等了 3 年,Ubuntu Studio 终于有权限上传更新包
- mysql server再次安装失败_MySQL在windows上多次安装失败
- [Python] 更改矩阵形状:reshape(m,n)、view(m,n)和view_as(tensor)
- 如何提取明细表头_超全!197页建筑工程预算实例教程+241页预算明细表,造价轻松算...
- Python 之 str 、 repr 、 反引号(``)的区别
- 送你一份有态度的红包封面!
- 使用Mapviz,进行机器人GPS轨迹卫星地图绘制(2)-调用天地图API,快速加载刷新地图
- php微信公众号发送邮件,GitHub - DongDavid/notify: 消息发送组件-邮件、微信公众号、企业微信、小程序...
- Lab 3:自行车码表
- Normalized Gini Coefficient
- 和程序员薪酬差不多的工作
- powershell 结束进程的四种写法
- CSU1020-真三国无双-模拟
热门文章
- ps中如何把图片变白底
- 关于静态变量的缺省值
- 为什么要用PolyFill(JS中的修补匠)
- postgresql实现存在则更新,不存在则插入
- 算术编码原理及其python实现
- 企业微信---第三方应用开发 笔记
- 计算机领域职业简介-PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD,PRD,FSD等缩写的全称解析
- 转:『诡异的』VL10B创建外向交货单出错解决全过程
- Unity3D-游戏ARVR开发进阶课程 - 动画系统-宋晓波-专题视频课程
- 【架构风格】架构风格演进和领域架构分类