RepoPulse 是一个 GitHub Trending 仓库分析工具,能够自动抓取 GitHub 上最热门的仓库,并根据仓库的名称和描述进行智能分类,计算出当前最热门的技术话题。
- 自动抓取 GitHub Trending 仓库:从多个编程语言分类中获取最新的热门仓库
- 智能话题分类:使用 TF-IDF 算法对仓库进行自动分类
- 热度计算:基于仓库的每日星数和总星数计算话题热度
- 美观的终端界面:使用 Rich 库展示漂亮的终端界面
- 多语言支持:支持 Python、Go、C、C++ 等多种编程语言的仓库
- 异步爬取:使用 asyncio 和 aiohttp 实现高效并发爬取,大幅提升数据获取速度
- 代理支持:支持通过代理访问 GitHub(默认配置为 http://127.0.0.1:7890)以提高爬取稳定性
项目目前支持以下技术话题分类:
- LLM_Infra: 大语言模型基础设施
- Multimodal_AI: 多模态人工智能
- Agent_MCP: 智能代理和模型上下文协议
- Database_Storage: 数据库和存储系统
- System_Kernel: 系统内核开发
- Embedded_Firmware: 嵌入式系统和固件
- Networking_Security: 网络安全
- DevTool_Testing: 开发工具和测试
- CLI_Editor: 命令行工具和编辑器
- WebApp_Monitoring: Web 应用和监控
- Game_Physics: 游戏引擎和物理引擎
- Collection_Edu: 教程和教育资源
- FinTech: 金融科技
pip install requests lxml fake_useragent scikit-learn rich aiohttp certifi- 克隆项目:
git clone https://github.com/your-username/RepoPulse.git
cd RepoPulse- 安装依赖:
pip install -r requirements.txt如果项目根目录没有 requirements.txt 文件,可以手动安装依赖:
pip install requests lxml fake_useragent scikit-learn rich aiohttp certifipython main.py你可以使用以下命令行参数来自定义分析:
--time-range: 设置分析时间范围,可选值为daily(每日)、weekly(每周)、monthly(每月),默认为daily--languages: 指定要分析的编程语言列表,默认为python c++ c java javascript typescript go rust
例如:
# 分析每日趋势,仅包含Python和Go语言
python main.py --time-range daily --languages python go
# 分析每周趋势,包含多种语言
python main.py --time-range weekly --languages python java javascript- crawler.py: 抓取 GitHub Trending 仓库数据(支持异步并发和代理访问)
- analysis.py: 分析仓库并进行话题分类
- topic.py: 计算话题热度
- cli.py: 在终端中展示结果
- main.py: 主程序入口
RepoPulse/
├── main.py # 主程序入口
├── crawler.py # GitHub Trending 仓库爬虫
├── analysis.py # 仓库分析与话题分类
├── topic.py # 话题热度计算
├── cli.py # 终端界面展示
├── trending.json # 抓取的仓库数据存储
└── README.md # 项目说明文档
- 数据抓取:从 GitHub Trending 页面抓取热门仓库信息
- 文本分析:使用 TF-IDF 算法分析仓库名称和描述
- 话题分类:将仓库归类到预定义的技术话题
- 热度计算:基于每日星数和总星数计算话题热度
- 结果展示:在终端中以表格形式展示热门话题和相关仓库
运行程序后,你将看到类似以下的输出:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 GitHub Trending Topics │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 Agent_MCP │
│ Heat: 906.79 Repos: 17 AvgScore: 0.216 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
# │ Repository │ Lang │ ⭐ Stars │ 🚀 Daily │ Score
═════╪══════════════════════════════╪════════╪══════════╪══════════╪═══════
1 │ BloopAI/vibe-kanban │ Rust │ 9,838 │ 1573 │ 0.429
2 │ anthropics/skills │ Python │ 30,670 │ 914 │ 0.268
3 │ timescale/pg-aiguide │ Python │ 922 │ 321 │ 0.306
4 │ openai/codex │ Rust │ 54,989 │ 60 │ 0.300
5 │ LaurieWired/GhidraMCP │ Java │ 6,887 │ 48 │ 0.150
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 DevTool_Testing │
│ Heat: 549.25 Repos: 11 AvgScore: 0.232 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
# │ Repository │ Lang │ ⭐ Stars │ 🚀 Daily │ Score
═════╪══════════════════════════════╪════════╪══════════╪══════════╪═══════
1 │ pathwaycom/pathway │ Python │ 52,781 │ 564 │ 0.157
2 │ looplj/axonhub │ Go │ 1,145 │ 71 │ 0.111
3 │ gohugoio/hugo │ Go │ 85,690 │ 38 │ 0.313
4 │ cloudwego/eino │ Go │ 8,892 │ 32 │ 0.222
5 │ google/perfetto │ C++ │ 5,323 │ 17 │ 0.222
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 WebApp_Monitoring │
│ Heat: 535.28 Repos: 7 AvgScore: 0.228 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
# │ Repository │ Lang │ ⭐ Stars │ 🚀 Daily │ Score
═════╪══════════════════════════════╪════════════╪══════════╪══════════╪═══════
1 │ sansan0/TrendRadar │ Python │ 41,686 │ 338 │ 0.118
2 │ alexta69/metube │ Python │ 11,686 │ 330 │ 0.481
3 │ louislam/uptime-kuma │ JavaScript │ 80,623 │ 263 │ 0.373
4 │ henrygd/beszel │ Go │ 18,168 │ 79 │ 0.118
5 │ swc-project/swc │ Rust │ 33,100 │ 7 │ 0.167
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 Game_Physics │
│ Heat: 518.52 Repos: 5 AvgScore: 0.356 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
# │ Repository │ Lang │ ⭐ Stars │ 🚀 Daily │ Score
═════╪══════════════════════════════╪════════════╪══════════╪══════════╪═══════
1 │ jrouwe/JoltPhysics │ C++ │ 9,097 │ 172 │ 0.403
2 │ godotengine/godot │ C++ │ 104,607 │ 51 │ 0.413
3 │ 4ian/GDevelop │ JavaScript │ 18,937 │ 45 │ 0.377
4 │ facebook/hermes │ JavaScript │ 10,699 │ 22 │ 0.327
5 │ NVIDIA/open-gpu-kernel-modu… │ C │ 16,562 │ 7 │ 0.259
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 🔥 Collection_Edu │
│ Heat: 463.22 Repos: 8 AvgScore: 0.220 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
# │ Repository │ Lang │ ⭐ Stars │ 🚀 Daily │ Score
═════╪══════════════════════════════╪════════════╪══════════╪══════════╪═══════
1 │ Shubhamsaboo/awesome-llm-ap… │ Python │ 85,638 │ 312 │ 0.194
2 │ github/awesome-copilot │ JavaScript │ 15,936 │ 100 │ 0.204
3 │ organicmaps/organicmaps │ C++ │ 12,432 │ 40 │ 0.204
4 │ rossant/awesome-math │ Python │ 12,584 │ 16 │ 0.386
5 │ kunal-kushwaha/DSA-Bootcamp… │ Java │ 21,456 │ 13 │ 0.144
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目!
本项目采用 Apache 2.0 许可证 - 查看 LICENSE 文件了解详情。