博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用爬虫写一个 GitHub Trending API
阅读量:6909 次
发布时间:2019-06-27

本文共 2389 字,大约阅读时间需要 7 分钟。

这学期打算做一个关于 GitHub 的 Android 应用,其中一个模块就是查看 GitHub 当天,当周,当月的热门项目和开发者。其实 GitHub 给了开发者相当丰富的 API 接口 ,包括认证,搜索,活动等接口,但就是没有提供获取 Trending 的接口。去 GitHub 的主页看了一下,并看了其 html 代码,发现想要的东西都可以用爬虫爬去下来,于是就着手爬去信息。


以下所有请求都为get请求,请求主地址为https://trendings.herokuapp.com

获取热门项目

路径

/repo

参数

名称 类型 描述
lang 字符串 可选,热门项目的语言
since 字符串 可选,get请求参数,无这参数则自动获取当天的热门项目,参数值只有三个,分别是daily,weekly,monthly。

例如请求 https://trendings.herokuapp.com/repo?lang=java&since=weekly

返回结果:

//status code: 201{  "count": 25,  "msg": "done",  //项目集合  "items": [    {      //项目贡献者的头像地址集合      "avatars": [        "https://avatars0.githubusercontent.com/u/16903644?v=3&s=40",        "https://avatars2.githubusercontent.com/u/8622362?v=3&s=40",        "https://avatars0.githubusercontent.com/u/10773353?v=3&s=40",        "https://avatars3.githubusercontent.com/u/6392550?v=3&s=40",        "https://avatars1.githubusercontent.com/u/3837836?v=3&s=40"      ],      //项目的地址      "repo_link": "https://github.com/kdn251/interviews",      //项目描述      "desc": "Everything you need to know to get the job.",      //项目仓库      "repo": "kdn251/interviews",      //目前为止的的stars数      "stars": "5,772",       //目前为止的forks数      "forks": "539",      //项目所属语言      "lang": "Java",      //今天或者这周或者这个月的starts数      "added_stars": "4,591 stars this week"    },    .    .    .  ]}复制代码

获取热门开发者

路径

/developer

参数

名称 类型 描述
lang 字符串 可选,热门开发者使用的主要语言
since 字符串 可选,get请求参数,无这参数则自动获取当天的热门开发者,参数值只有三个,分别是daily,weekly,monthly。

请求 https://trendings.herokuapp.com/developer?lang=java&since=weekly

返回结果:

//status code: 201{  "count": 25,  "msg": "done",  //开发者集合  "items": [    {      //开发者在GitHub上的用户名      "user": "google",      //开发者在GitHub上的主页链接      "user_link": "https://github.com/google",        //开发者的全名      "full_name": "(Google)",        // 开发者的头像地址      "developer_avatar": "https://avatars1.githubusercontent.com/u/1342004?v=3&s=96"    },    .    .    .]}复制代码

获 取GitHub 上的所有 trending 语言。

请求地址:https://trendings.herokuapp.com/lang

返回结果:

//status code: 201{    "count": 464,    "items": [        "1C-Enterprise",        "ABAP",        "ABNF",        "ActionScript",        "Ada",        .        .        .        "YANG",        "Zephir",        "Zimpl"    ],    "msg": "suc"}复制代码

异常

有时候去访问 GitHub 的 trending 时,会找不到热门项目或者开发者的,这时就会返回如下的 JSON:

//status code: 404{  "msg": "Unavialiable.",  "count":0,  "items": []}复制代码

维护

若某个接口无法调用,请通过简信或者邮箱 doforce@126.com 与我取得联系,我会尽快修复问题。

转载地址:http://megdl.baihongyu.com/

你可能感兴趣的文章
vue-cli 搭建多页面应用基础结构
查看>>
nodebb搭建,维护,discuz!数据迁移至mongo
查看>>
cordova环境搭建以及将vue的webapp打包成ios和安卓的debug和release版本app
查看>>
Spark stand a lone 模式
查看>>
Redis有序集合类型
查看>>
Codepen 每周精选:不能错过的23个页面特效(2018-5-14)
查看>>
webstorm+chrome+eggjs进行断点调试
查看>>
React GraphQL Koa仿Pinterest手机端
查看>>
为容器安全苦恼?这份清单整理了27种容器安全工具
查看>>
来聊聊怎么写react-native上的样式吧
查看>>
XPath与lxml类库
查看>>
前端面试题-BFC(块格式化上下文)
查看>>
CSS Grid 系列(下)-使用Grid布局构建网站首页
查看>>
2017中国云计算评测报告
查看>>
【339天】我爱刷题系列098(2018.01.10)
查看>>
结合 CSS3 transition transform 实现简单的跑马灯效果
查看>>
原生js系列之DOM工厂模式
查看>>
使用babel将es6语法转es5
查看>>
Python Apscheduler源代码解析(一) 任务调度流程
查看>>
Just for fun——windows上bat管理你的Nginx+PHP+MySQL
查看>>