生而为虫,不止于虫
feaplat命名源于 feapder 与 platform 的缩写
读音: [ˈfiːplæt]
- 支持任何python脚本,包括不限于
feapder
、scrapy
- 支持浏览器渲染,支持有头模式。浏览器支持
playwright
、selenium
- 支持部署服务,可自动负载均衡
- 支持服务器集群管理
- 支持监控,监控内容可自定义
- 支持起多个实例,如分布式爬虫场景
- 支持弹性伸缩
- 支持4种定时启动方式
- 支持自定义worker镜像,如自定义java的运行环境、机器学习环境等,即根据自己的需求自定义(feaplat分为
master-调度端
和worker-运行任务端
) - docker一键部署,架设在docker swarm集群上
市面上的爬虫管理系统
worker节点常驻,且运行多个任务,不能弹性伸缩,任务之前会相互影响,稳定性得不到保障
feaplat爬虫管理系统
worker节点根据任务动态生成,一个worker只运行一个任务实例,任务做完worker销毁,稳定性高;多个服务器间自动均衡分配,弹性伸缩
feaplat支持对feapder爬虫的运行情况进行监控,除了数据监控和请求监控外,用户还可自定义监控内容,详情参考自定义监控
若scrapy爬虫或其他python脚本使用监控功能,也可通过自定义监控的功能来支持,详情参考自定义监控
注:需 feapder>=1.6.6
下面部署以centos为例, 其他平台docker安装方式可参考docker官方文档:https://docs.docker.com/compose/install/
删除旧版本(可选,需要重装升级时执行)
yum remove docker docker-common docker-selinux docker-engine
安装:
yum install -y yum-utils device-mapper-persistent-data lvm2 && python2 /usr/bin/yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum install docker-ce -y
国内用户推荐使用
yum install -y yum-utils device-mapper-persistent-data lvm2 && python2 /usr/bin/yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum install docker-ce -y
启动
systemctl enable docker
systemctl start docker
docker swarm init
# 如果你的 Docker 主机有多个网卡,拥有多个 IP,必须使用 --advertise-addr 指定 IP
docker swarm init --advertise-addr 192.168.99.100
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
国内用户推荐使用
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
安装git(1.8.3的版本已够用)
yum -y install git
先按照下面命令拉取develop分支代码运行。 master分支不支持urllib3>=2.0版本,现在已经运行不起来了,但之前老用户不受影响。待后续测试好兼容性,不影响老用户后,会将develop分支合并到master
gitub
git clone -b develop https://github.com/Boris-code/feaplat.git
gitee
git clone -b develop https://gitee.com/Boris-code/feaplat.git
首次运行需拉取镜像,时间比较久,且运行可能会报错,再次运行下就好了
cd feaplat
docker-compose up -d
- 若端口冲突,可修改.env文件,参考常见问题
默认地址:http://localhost
默认账密:admin / admin
docker-compose stop
用于搭建集群,扩展爬虫(worker)节点服务器
参考部署步骤1
在master服务器(feaplat爬虫管理系统所在服务器)执行下面命令,查看token
docker swarm join-token worker
在需扩充的服务器上执行
docker swarm join --token [token] [ip]
这条命令用于将该台服务器加入集群节点
在master服务器(feaplat爬虫管理系统所在服务器)执行下面命令
docker node ls
若打印结果包含刚加入的服务器,则添加服务器成功
在需要下线的服务器上执行
docker swarm leave
拉取私有项目需在git仓库里添加如下公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCd/k/tjbcMislEunjtYQNXxz5tgEDc/fSvuLHBNUX4PtfmMQ07TuUX2XJIIzLRPaqv3nsMn3+QZrV0xQd545FG1Cq83JJB98ATTW7k5Q0eaWXkvThdFeG5+n85KeVV2W4BpdHHNZ5h9RxBUmVZPpAZacdC6OUSBYTyCblPfX9DvjOk+KfwAZVwpJSkv4YduwoR3DNfXrmK5P+wrYW9z/VHUf0hcfWEnsrrHktCKgohZn9Fe8uS3B5wTNd9GgVrLGRk85ag+CChoqg80DjgFt/IhzMCArqwLyMn7rGG4Iu2Ie0TcdMc0TlRxoBhqrfKkN83cfQ3gDf41tZwp67uM9ZN [email protected]
或在系统设置页面配置您的SSH私钥,然后在git仓库里添加您的公钥,例如:
注意,公私钥加密方式为RSA,其他的可能会有问题
生成RSA公私钥方式如下:
ssh-keygen -t rsa -C "备注" -f 生成路径/文件名
如:
ssh-keygen -t rsa -C "feaplat" -f id_rsa
然后一路回车,不要输密码
最终生成 id_rsa
、id_rsa.pub
文件,复制id_rsa.pub
文件内容到git仓库,复制id_rsa
文件内容到feaplat爬虫管理系统
默认的爬虫镜像只打包了feapder
、scrapy
框架,若需要其它环境,可基于.env
文件里的SPIDER_IMAGE
镜像自行构建
如将常用的python库打包到镜像
FROM registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:[最新版本号]
# 安装依赖
RUN pip3 install feapder \
&& pip3 install scrapy
自己随便搞事情,搞完修改下 .env
文件里的 SPIDER_IMAGE 的值即可
类型 | 价格 | 说明 |
---|---|---|
试用版 | 0元 | 可部署5个任务,删除任务不可恢复额度 |
正式版 | 288元 | 有效期一年,可换绑服务器 |
部署后默认为试用版,购买授权码后配置到系统里即为正式版
购买方式:添加微信 boris_tm
随着功能的完善,价格会逐步调整
知识星球:17321694 | 作者微信: boris_tm | QQ群号:750614606 |
加好友备注:feaplat