Skip to content

wzdnzd/aggregator

Repository files navigation

Aggregator - 免费代理池构建工具

GitHub stars GitHub forks GitHub issues License

🎯 项目简介

一个强大的免费代理池构建工具,通过爬取多个平台/网页的代理资源,自动验证、聚合并转换为各种客户端所需格式。

✨ 核心特性

  • 🕷️ 多源爬取 - 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[推送存储] 
Loading

⚡ 快速配置

最小配置示例

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 路线图

架构重构

  • 核心接口设计 - 抽象出 ICrawlerIStorageIConverter 等核心接口
  • 基类实现 - 创建 BaseCrawlerBaseStorageBaseConverter 抽象基类
  • 具体实现重构 - 将现有爬虫、存储、转换模块改为继承基类并实现接口
  • 工厂模式 - 使用工厂模式动态创建爬虫和存储实例,提升扩展性
  • 模块解耦 - 通过接口依赖替代直接依赖,降低模块间耦合度

插件化架构

  • 爬虫插件化 - 将 Telegram、GitHub、Google 等爬虫重构为独立插件
  • 存储插件化 - 将 Gist、PasteGG、Imperial 等存储后端重构为插件
  • 插件注册机制 - 实现插件自动发现和注册系统
  • 插件配置标准化 - 定义统一的插件配置规范和验证机制

配置系统优化

  • 配置模型化 - 使用 Pydantic 定义强类型配置模型
  • 配置验证增强 - 实现配置完整性检查和错误提示
  • 配置模板化 - 提供常用场景的配置模板和生成工具
  • 配置文档化 - 自动生成配置项说明文档

代码质量提升

  • 类型系统完善 - 全面引入类型注解,提升 IDE 支持和代码安全性
  • 异常体系重构 - 设计统一的异常层次结构和错误码系统
  • 日志标准化 - 实现结构化日志和统一的日志格式
  • 代码风格统一 - 集成 Black、isort、flake8 等工具链

性能与稳定性

  • 并发模型优化 - 改进线程池管理和任务调度机制
  • 资源管理 - 实现连接池和资源自动回收机制
  • 容错能力增强 - 完善重试策略和降级处理逻辑
  • 内存优化 - 优化大数据处理的内存使用效率

⚖️ 免责声明

  • 本项目仅用作学习爬虫技术,请勿滥用,不要通过此工具做任何违法乱纪或有损国家利益之事
  • 禁止使用该项目进行任何盈利活动,对一切非法使用所产生的后果,本人概不负责
  • 使用者应遵守当地法律法规,尊重网站服务条款,合理使用网络资源

🙏 致谢

核心依赖

赞助支持

感谢以下组织的赞助支持:

社区贡献

感谢所有为项目贡献代码、提出建议和报告问题的开发者们!

如果这个项目对你有帮助,请给它一个 ⭐

报告问题 · 功能请求 · 贡献代码

About

One-stop Proxies Crawling and Aggregation Platform

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors