此项目旨在从 GitHub 上自动爬取数据,存储到本地数据库中,通过算法分析这些数据,并通过前端展示结果。项目分为多个模块,包括爬虫、算法分析、API 接口及前端展示。
地址:https://algo-eno.pages.dev/
cd frontend && pnpm install && pnpm run build
上传即可
项目根目录
├── script # 前端
├── script # 脚本文件夹
│ ├── icehub.py # 爬虫模块
│ ├── src # 数据分析模块
│ └── api.py # API 接口模块(使用 Flask)
└── frontend # 前端展示模块
- 爬虫模块 (script/icehub.py):该模块负责在 GitHub 网站上爬取所需信息,将数据写入本地数据库。主要功能包括:
- 爬取 GitHub 项目信息(如 stars、forks 等)并写入数据库
- 根据 API 限额自动调整爬取时机,必要时自动进入休眠状态
- 支持扩展不同的 API 源
- 数据分析模块 (script/src):该模块从数据库读取数据,分析并生成适合的参数,用于数据进一步处理。分析结果会写回数据库,以便后续调用。主要功能包括:
- 连接数据库并读取爬虫模块存储的数据
- 分析用户的地理位置与排名信息
- 将易于检索的数据条目回写至数据库供 API 部分查询
- API 接口模块 (script/api.py):该模块使用 Flask 框架实现 API 接口,供前端调用。主要功能包括:
- 接收前端请求,根据前端需求组织数据库中的数据,并在查询/排序后返回 json 结果
- 必要时进行额外的数据分析,并将分析结果返回给前端
- 前端展示模块 (frontend):前端模块负责调用 API,并展示来自数据库的数据。主要功能包括:
- 根据用户输入,调用 API 接口模块获取所需数据并动态展示给用户
- 简洁、美观、流畅的界面,以用户友好的方式展示信息