# crawler_management **Repository Path**: azhe530/crawler_management ## Basic Information - **Project Name**: crawler_management - **Description**: 分布式爬虫管理系统 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-01 - **Last Updated**: 2025-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 分布式爬虫管理系统使用指南 ## 1. 系统架构 本系统是一个基于FastAPI和Vue-Element-Admin构建的分布式爬虫管理平台,通过Master-Worker架构实现任务的高效调度和执行。系统具有以下特点: - 基于FastAPI的高性能后端 - 分布式节点管理和任务调度 - 集成AI优化的任务调度策略 - 基于MongoDB和MySQL的数据存储 - 基于Redis的任务队列和节点通信 - 基于Prometheus和Grafana的性能监控 - 支持Docker容器化运行爬虫 ## 2. 环境准备 确保你的系统安装了以下软件: - Docker 与 Docker Compose - Python 3.12+ - Node.js 16+ (用于前端开发) ### 2.1 依赖安装注意事项 - 安装 `redis` 包时,确保使用版本 6.0版本或更高(`pip install redis>=6.0.0`),以支持 `redis.asyncio` 模块。 - 如果遇到 `ModuleNotFoundError: No module named 'redis.asyncio'`,请升级 `redis` 包。 - 安装 `prometheus-client` 以支持指标暴露(`pip install prometheus-client`)。 ## 3. 系统启动 ### 3.1 配置环境变量 创建一个`.env`文件,配置必要的环境变量: ``` SECRET_KEY=your-super-secret-key MYSQL_ROOT_PASSWORD=your-mysql-password MYSQL_USER=crawler MYSQL_PASSWORD=crawler-password DEEPSEEK_API_KEY=your-deepseek-api-key PROMETHEUS_PORT=9090 # 可选,用于启用 Prometheus 推送(Windows 默认 localhost:9090) ``` ### 3.2 使用Docker Compose启动系统 ```bash # 构建镜像并启动所有服务 docker-compose up -d --build # 查看服务状态 docker-compose ps ``` 服务启动后,可以通过以下地址访问: - 后端API文档:http://localhost:8000/api/v1/docs - 前端界面:http://localhost:8080 - Grafana监控:http://localhost:3000 (默认用户名/密码:admin/admin) - Prometheus:http://localhost:9090 # prometheus.exe --config.file=prometheus.yaml ### 3.3 手动启动(开发模式) ```bash # 启动后端 pip install -r requirements.txt uvicorn app.main:app --reload --host 0.0.0.0 --port 8000 # 在另一个终端启动Worker节点 python -m worker.main ``` ## 4. 使用流程 ### 4.1 创建用户 首次使用系统需要创建管理员用户: ```bash # 使用管理员token创建用户 curl -X POST "http://localhost:8000/api/v1/users/" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -d '{ "username": "admin", "email": "admin@example.com", "password": "adminpassword", "role": "admin" }' ``` ### 4.2 上传爬虫脚本 1. 登录系统 2. 进入"爬虫管理"页面 3. 点击"新建爬虫" 4. 输入爬虫名称、选择语言(Python/Node.js)、上传zip压缩包脚本 5. 点击"保存"提交爬虫 ### 4.3 创建任务 1. 进入"任务管理"页面 2. 点击"新建任务" 3. 选择已上传的爬虫脚本 4. 配置任务参数(如目标URL、请求头等) 5. 设置任务优先级,如需定时任务,配置Cron表达式 6. 点击"提交"创建任务 ### 4.4 查看任务结果 1. 进入"任务管理"页面 2. 点击任务ID进入详情页 3. 查看任务状态、执行日志和结果数据 ### 4.5 监控系统性能 1. 进入"系统监控"页面 2. 查看节点状态、任务执行情况、系统资源使用情况等指标 3. 点击"告警"选项卡查看系统告警信息 ## 5. 示例爬虫 系统已预置了示例爬虫,你可以通过以下步骤测试系统: 1. 登录系统 2. 进入"爬虫管理"页面 3. 选择"示例爬虫" 4. 点击"创建任务" 5. 参数配置示例: ```json { "url": "https://news.ycombinator.com", "headers": { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } } ``` 6. 点击"提交"创建任务 7. 在"任务管理"页面查看任务执行情况和结果 ## 6. 系统扩展 ### 6.1 添加Worker节点 1. 修改`docker-compose.yml`,复制worker服务配置,修改容器名称和NODE_NAME 2. 重新启动系统:`docker-compose up -d` ### 6.2 自定义爬虫脚本 爬虫脚本需满足以下要求: 1. 支持命令行参数:`--params <参数文件路径>` 和 `--output <输出文件路径>` 2. 参数文件格式为JSON 3. 输出结果保存为JSON格式 4. 处理异常并返回适当的状态码 ## 7. 常见问题 ### 7.1 节点状态显示离线 - 检查Worker节点是否正常运行 - 检查Redis连接是否正常 - 检查网络连接是否正常 ### 7.2 任务执行失败 - 查看任务执行日志定位问题 - 检查爬虫脚本是否符合系统要求 - 检查Docker容器是否正常运行 ### 7.3 性能监控不显示数据 - 检查Prometheus服务是否正常运行 - 检查Grafana配置是否正确 - 检查节点是否正确上报指标