相信很多开发者都有逛 GitHub 的习惯,会去看 GitHub Trending,关注每个时段 GitHub 上面的热门项目和热门的开发者,但是访问 GitHub 的时候可能会遇到速度比较慢的问题;另外,我们在开发第三方 GitHub 应用时,通常也需要展示 Trending 数据,由于 GitHub 官方提供的 API 并不包含 GitHub Trending 相关的接口,如果直接在客户端抓取解析,可能速度会比较慢。所以编写了一个基于 Java 的小爬虫,用于在服务器端抓取解析 GitHub Trending 数据并缓存,以提供给客户端快速(秒级)的查询接口。可以分别以编程语言(Java、Python、Go、C…)和时间(Daily、Weekly、Monthly)为维度抓取最受关注的 Repositories 和 Developers。
GitHub: github_trending_crawler
项目说明
该项目是基于 Spring Boot,下面是使用的工具:
- GitHub 网页数据获取:
httpclient
- HTML 解析:
jsoup
- 数据缓存:
caffeine
cache
响应 Json 数据格式:
热门项目:
- 请求接口示例:
1 | http://localhost:8082/trending/java?since=daily |
- 响应数据:
1 | { |
热门开发者:
- 请求接口示例:
1 | http://localhost:8082/hot/develops/java?since=daily |
- 响应数据:
1 | { |