Aggregator
One-stop Proxies Crawling and Aggregation Platform
Install / Use
/learn @wzdnzd/AggregatorREADME
Aggregator - 免费代理池构建工具
🎯 项目简介
一个强大的免费代理池构建工具,通过爬取多个平台/网页的代理资源,自动验证、聚合并转换为各种客户端所需格式。
✨ 核心特性
- 🕷️ 多源爬取 - Telegram、GitHub、Google、Yandex、Twitter 等
- 🔍 智能验证 - 自动检测代理活性和质量
- 🔄 格式转换 - 支持 Clash、V2Ray、SingBox 等格式
- 💾 灵活存储 - GitHub Gist、PasteGG、Imperial 等多种后端
- 🔌 插件系统 - 可扩展的自定义爬取架构
- ⚡ 高效处理 - 多线程并发,批量处理
🌐 支持协议
VMess | Trojan | SS | SSR | Snell | Hysteria2 | VLESS | Hysteria | TUIC | AnyTLS | HTTP | SOCKS
🚀 两种使用方式
方式一:process.py(推荐)
完整功能版本 - 支持复杂配置、多源爬取、自定义规则
# 1. 准备配置文件
cp subscribe/config/config.default.json my-config.json
# 2. 设置环境变量
export PUSH_TOKEN=your_github_token
# 3. 运行处理
python subscribe/process.py -s my-config.json
适用场景:
- 需要精细控制爬取规则
- 多分组输出管理
- 自定义存储后端
- 定时自动化运行
方式二:collect.py
简化版本 - 快速收集机场订阅
# 直接运行,自动收集并上传到 Gist
python subscribe/collect.py \
-g username/gist-id \
-k your-github-token \
-t clash v2ray singbox
适用场景:
- 快速获取免费代理
- 个人日常使用
- 不需要复杂配置
🎁 共享订阅
可前往 Issue #91 获取现成的共享订阅,量大质优。请勿浪费
📊 工作流程
graph LR
A[开始] --> B{选择方式}
B -->|简单| C[collect.py]
B -->|完整| D[process.py]
C --> E[自动收集机场]
E --> F[注册账号]
F --> G[获取订阅]
G --> H[验证代理]
H --> I[上传到Gist]
D --> J[加载配置]
J --> K[多源爬取]
K --> L[聚合处理]
L --> M[质量检测]
M --> N[格式转换]
N --> O[推送存储]
⚡ 快速配置
最小配置示例
process.py 配置:
{
"domains": [
{
"name": "example-airport",
"domain": "example.com",
"push_to": ["free"]
}
],
"crawl": {
"enable": true,
"telegram": {
"enable": true,
"users": {
"proxy_channel": {
"push_to": ["free"]
}
}
}
},
"groups": {
"free": {
"targets": {"clash": "free-clash"}
}
},
"storage": {
"engine": "gist",
"items": {
"free-clash": {
"username": "your-username",
"gistid": "your-gist-id",
"filename": "clash.yaml"
}
}
}
}
环境变量:
export PUSH_TOKEN=your_github_token
常用命令
# 快速收集(推荐新手)
python subscribe/collect.py -g username/gist-id -k token
# 完整处理(推荐进阶)
python subscribe/process.py -s config.json
# 仅检查代理活性
python subscribe/process.py -s config.json --check
# 高性能模式
python subscribe/process.py -s config.json -n 128
📚 相关文档
| 文档 | 说明 | 适用人群 | | ---------------------------- | --------------- | ------------------- | | 完整文档 | 详细配置说明 | 进阶用户 | | English Docs | English version | International users |
🔧 常见问题
| 问题 | 解决方案 |
| ------------ | ------------------------------------------ |
| 配置文件错误 | python -m json.tool config.json 验证语法 |
| Token 无效 | 检查 GitHub Token 权限和有效期 |
| 网络超时 | 增加超时 -t 15000 或减少线程 -n 16 |
| 无代理输出 | 检查爬取源配置和网络连接 |
插件开发
拥有灵活的插件系统,支持自定义爬取目标。欢迎贡献高质量的爬取插件!
🚧 TODO 路线图
架构重构
- [ ] 核心接口设计 - 抽象出
ICrawler、IStorage、IConverter等核心接口 - [ ] 基类实现 - 创建
BaseCrawler、BaseStorage、BaseConverter抽象基类 - [ ] 具体实现重构 - 将现有爬虫、存储、转换模块改为继承基类并实现接口
- [ ] 工厂模式 - 使用工厂模式动态创建爬虫和存储实例,提升扩展性
- [ ] 模块解耦 - 通过接口依赖替代直接依赖,降低模块间耦合度
插件化架构
- [ ] 爬虫插件化 - 将 Telegram、GitHub、Google 等爬虫重构为独立插件
- [ ] 存储插件化 - 将 Gist、PasteGG、Imperial 等存储后端重构为插件
- [ ] 插件注册机制 - 实现插件自动发现和注册系统
- [ ] 插件配置标准化 - 定义统一的插件配置规范和验证机制
配置系统优化
- [ ] 配置模型化 - 使用 Pydantic 定义强类型配置模型
- [ ] 配置验证增强 - 实现配置完整性检查和错误提示
- [ ] 配置模板化 - 提供常用场景的配置模板和生成工具
- [ ] 配置文档化 - 自动生成配置项说明文档
代码质量提升
- [ ] 类型系统完善 - 全面引入类型注解,提升 IDE 支持和代码安全性
- [ ] 异常体系重构 - 设计统一的异常层次结构和错误码系统
- [ ] 日志标准化 - 实现结构化日志和统一的日志格式
- [ ] 代码风格统一 - 集成 Black、isort、flake8 等工具链
性能与稳定性
- [ ] 并发模型优化 - 改进线程池管理和任务调度机制
- [ ] 资源管理 - 实现连接池和资源自动回收机制
- [ ] 容错能力增强 - 完善重试策略和降级处理逻辑
- [ ] 内存优化 - 优化大数据处理的内存使用效率
⚖️ 免责声明
- 本项目仅用作学习爬虫技术,请勿滥用,不要通过此工具做任何违法乱纪或有损国家利益之事
- 禁止使用该项目进行任何盈利活动,对一切非法使用所产生的后果,本人概不负责
- 使用者应遵守当地法律法规,尊重网站服务条款,合理使用网络资源
🙏 致谢
核心依赖
- Subconverter - 订阅转换核心
- Mihomo - 代理测试引擎
赞助支持
感谢以下组织的赞助支持:
社区贡献
感谢所有为项目贡献代码、提出建议和报告问题的开发者们!
<div align="center">如果这个项目对你有帮助,请给它一个 ⭐
</div>Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
