# Galaxy **Repository Path**: dev_cpg/galaxy ## Basic Information - **Project Name**: Galaxy - **Description**: Galaxy银河爬虫计划 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Galaxy Spider Engine 🦆 > 高性能异步爬虫引擎 - 银河计划 ## 📋 项目简介 Galaxy Spider Engine 是一款基于 Python 3.11+ 的高性能异步爬虫框架,专为大规模数据采集场景设计。 ### 核心特性 - 🚀 **异步高性能** - 基于 asyncio/aiohttp,支持高并发请求 - 🌐 **多引擎支持** - HTTP 请求引擎 + 浏览器渲染引擎(Playwright) - 💾 **数据存储** - MongoDB(原始数据)+ PostgreSQL(清洗后数据) - 📊 **监控指标** - Prometheus + Grafana 监控 - 🔄 **任务调度** - 优先级队列、限流、去重 - ☸️ **K8s 部署** - 原生支持 Kubernetes/K3S 部署 - 🔧 **配置中心** - YAML 配置 + 环境变量覆盖 ## 🏗️ 项目结构 ``` galaxy/ ├── galaxy_spider/ # 主包 │ ├── core/ # 核心引擎 │ │ ├── engine.py # 爬虫引擎主类 │ │ ├── http_engine.py # HTTP 请求引擎 │ │ ├── base.py # 爬虫基类 │ │ └── spiders/ # 内置爬虫 │ ├── parsers/ # 数据解析器 │ ├── storage/ # 数据存储 │ ├── scheduler/ # 任务调度 │ ├── monitor/ # 监控指标 │ └── config/ # 配置管理 ├── config/ # 配置文件 │ └── spider.yaml ├── k8s/ # K8s 部署配置 │ └── deployment.yaml ├── jenkins/ # Jenkins Pipeline │ └── Jenkinsfile ├── tests/ # 测试 ├── Dockerfile └── requirements.txt ``` ## 🚀 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置 编辑 `config/spider.yaml`: ```yaml mongodb: host: "192.168.1.5" port: 27017 database: "galaxy_spider" postgresql: host: "192.168.1.5" port: 5432 database: "galaxy_spider" ``` ### 3. 运行爬虫 ```bash cd galaxy_spider python -m galaxy_spider ``` ## ☸️ K8s 部署 ### 1. 推送镜像到 Harbor ```bash docker build -t harbor.dev-cpg.com/galaxy/spider-engine:v1.0.0 . docker push harbor.dev-cpg.com/galaxy/spider-engine:v1.0.0 ``` ### 2. 部署到 K8s ```bash kubectl apply -f k8s/deployment.yaml ``` ## 🔧 开发指南 ### 创建自定义爬虫 ```python from galaxy_spider.core import BaseSpider, SpiderRequest, SpiderResponse class MySpider(BaseSpider): name = "my_spider" async def start_requests(self): return [SpiderRequest(url="https://example.com")] async def parse(self, response: SpiderResponse): # 解析页面,返回新的请求或数据 return [] ``` ### 使用引擎运行 ```python from galaxy_spider.core import SpiderEngine engine = SpiderEngine(spider=MySpider(), max_workers=10) await engine.run() ``` ## 📊 监控 - Prometheus 指标: `GET /metrics` - 健康检查: `GET /health` ## 📝 许可 MIT License