Giter Club home page Giter Club logo

feapder-platform's Introduction

爬虫管理系统|FEAPDER

生而为虫,不止于虫

为什么用feapder爬虫管理系统

市面上的爬虫管理系统

feapderd

需要先部署好master、worker节点,worker节点常驻,等待master的指令执行任务。一个worker节点里可能同时跑了多个爬虫,一旦一个爬虫内存泄露等原因,可能会引发worker节点崩溃,影响该节点里的全部任务。并且worker数量不能弹性伸缩,无法利用云原生的优势

feapder爬虫管理系统

pic

根据配置的爬虫数动态生成worker,爬虫启动时才创建,爬虫结束时销毁。

-w1736

系统架设在docker swarm集群上,正是因为worker的弹性伸缩,使系统的稳定性大大提升,一台服务器宕机,worker会自动迁移到其他服务器节点。若后续部署到阿里云的k8s上,在爬虫高峰期时,利用阿里云k8s自动伸缩机制,即可实现自动扩充服务器节点,爬虫高峰期过了自动释放服务器,降低成本

特性

  1. 爬虫管理系统不仅支持 feapderscrapy,且支持执行任何脚本,可以把该系统理解成脚本托管的平台 。因为爬虫往往需要其他脚本辅助,如生产cookie脚本、搭建nodejs服务破解js,甚至是其他语言的脚本,本管理系统在设计之初就考虑到了这一点,因此可完美支持。

  2. 支持集群,工作节点根据配置定时启动,执行完释放,不常驻,节省服务器资源。一个爬虫实例一个节点,彼此之间隔离,互不影响。

  3. 支持管理员普通用户两种角色,管理员可看到全部项目,普通用户只可看到自己创建的项目。

功能概览

点我观看视频

1. 项目管理

项目列表 -w1786

添加/编辑项目 -w1785

2. 任务管理

任务列表 -w1791

定时支持 crontab、时间间隔、指定日期、只运行一次 四种方式。只运行一次的定时方式会在创建任务后立即运行 -w1731

3. 任务实例

列表 -w1785

日志 -w1742

4. 用户管理

用户分为管理员普通用户两种角色,管理员可看到全部项目,普通用户只可看到自己创建的项目,且只有管理员可看到用户管理面板

部署

下面部署以centos为例, 其他平台部署可参考docker官方文档:https://docs.docker.com/compose/install/

1. 安装docker

删除旧版本(需要重装升级时执行)

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

启动

systemctl enable docker
systemctl start docker

2. 安装 docker swarm

初始化

docker swarm init

# 如果你的 Docker 主机有多个网卡,拥有多个 IP,必须使用 --advertise-addr 指定 IP
docker swarm init --advertise-addr 192.168.99.100

初始化后会提示如下:

> docker swarm init --advertise-addr 192.168.99.100
Swarm initialized: current node (za53ikuwzpr11ojuj4fgx8ys0) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-1ujljqjf3mli9r940vcdjd7clyrdfjkqyf8g4g6kapfvkjkj9e-41byjvvodfpk7nz4smfdq44w0 192.168.99.100:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

3. 添加节点

添加其他服务器为节点时使用上面提示的 docker swarm join --token [token] [ip]命令

4. 安装docker-compose

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

5. 部署管理系统

1. 下载项目

git clone https://github.com/Boris-code/feapder-platform.git

2. 运行

首次运行需拉取镜像,时间比较久,且运行可能会报错,再次运行下就好了

cd feapder-platform
docker-compose up

运行起来会提示购买授权码,购买后继续

3. 修改配置

cd feapder-platform
vim .env

配置里有注释,注意必须修改下面两项

# 服务端部署的服务器所在的内网IP,用于爬虫节点通讯
BACKEND_IP=
# 授权码
AUTHORIZATION_CODE=

查看内网地址:

ifconfig

.env 文件将常用的配置项列了出来,docker-compose.yaml引用。若需要更进一步的自定义配置,可修改docker-compose.yaml

4. 后台运行

docker-compose up -d

5. 访问爬虫管理系统

默认地址:http://localhost 默认账密:admin / admin

端口修改在.env文件

6. 停止

docker-compose stop

拉取私有项目

拉取私有项目需在git仓库里添加如下公钥

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCd/k/tjbcMislEunjtYQNXxz5tgEDc/fSvuLHBNUX4PtfmMQ07TuUX2XJIIzLRPaqv3nsMn3+QZrV0xQd545FG1Cq83JJB98ATTW7k5Q0eaWXkvThdFeG5+n85KeVV2W4BpdHHNZ5h9RxBUmVZPpAZacdC6OUSBYTyCblPfX9DvjOk+KfwAZVwpJSkv4YduwoR3DNfXrmK5P+wrYW9z/VHUf0hcfWEnsrrHktCKgohZn9Fe8uS3B5wTNd9GgVrLGRk85ag+CChoqg80DjgFt/IhzMCArqwLyMn7rGG4Iu2Ie0TcdMc0TlRxoBhqrfKkN83cfQ3gDf41tZwp67uM9ZN [email protected]

或在.env文件里配置您的SSH私钥,然后在git仓库里添加您的公钥。

自定义爬虫节点

默认的爬虫节点只打包了feapderscrapy框架,若需要其它环境,可基于.env文件里的SPIDER_IMAGE镜像自行构建

如将常用的python库打包到镜像

FROM registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:[最新版本号]

# 安装依赖
RUN pip3 install feapder \
    && pip3 install scrapy

自己随便搞事情,搞完修改下 .env文件里的 SPIDER_IMAGE 的值即可

欢迎提PR,大家一起构建一个🐂的镜像

价格 119元

先部署运行,然后根据终端打印的日志 提供机器码和公网IP,联系作者微信购买授权码

-w753

授权码与机器码或公网IP绑定,同一服务器或公网IP下永久使用。随着系统的逐渐完善,价格会逐步提升,已购买的用户可免费升级。

本人承诺不上传任何数据,切勿相信其他渠道的破解版,天上掉馅饼不一定是好事。

学习交流

知识星球:17321694 作者微信: boris_tm QQ群号:750614606

加好友备注:feapder

feapder-platform's People

Contributors

boris-code avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.