github自己有API,如果自己写的爬虫没有特色或者没有很高的效率,不如使用API,数据获取可以来得快一些。github不像社交网站那样拥有大量用户和内容,所以数据规模相对小一点,使用API也相对便捷一些。

使用github的API

没有token的情况下,只有60次访问,而且有的IP直接被限制。除此之外,有一些API在访问的时候必须要认证的参数,所以还是进行认证好一些。官方API文档有详细的功能说明。

支持的验证访问方式有如下几种:使用token;使用auth认证。使用token简单一点。

对于生成的token还有访问权限范围的设置,避免滥用token。这是纯粹是为了开发,如果只是简单的获取点信息,没有什么设置的必要,可以全部关闭。

生成一个github的token

在主页设置——开发者设置下面,生成一个token。中间让你选择这个token 的作用域,如果只是访问官方的API,就不需要选择任何东西。

使用API之后,就可以拥有每小时5000次的请求。单线程在国内对github进行请求,受限于速度,很难做到每小时爬完5000次。多线程更不推荐,请求太多,github自身访问也不稳定,程序挂得很快。

下面是一个可以查看自己的剩余的次数的地址:

https://api.github.com/rate_limit?access_token=YOUR_TOKEN

如何遍历

github的API用起来很方便,通过修改GET请求参数中的page=的数字,就可以切换不同页面。序号从1开始,响应包的响应头link字段中会有上一个和下一个地址等信息,一般只用到下一个。结束的条件就是没有link字段不再有next相关的信息。遍历非常容易。

如果咋遍历用户的某些信息之前,曾经获取过用户粉丝或者关注者总数量的操作,可按照每页的数量(通常是30个)做计算得到最大的页数,然后进行遍历,可以替代每次检查响应头的办法。

常用的地址

用户资料:

https://api.github.com/users/B1u3Buf4

用户粉丝:

https://api.github.com/users/B1u3Buf4/followers

用户关注:

https://api.github.com/users/B1u3Buf4/following

用户仓库:

https://api.github.com/users/B1u3Buf4/repos

用户星赞:

https://api.github.com/users/B1u3Buf4/starred

申请token


首先登陆github,右上角点击头像,选择settings。

左侧选择Developer settings,之后会跳到下一个界面。

切换到personal access tokens,然后选择Generate new token生成新的token。接下来勾选token的权限,如果只是获取信息,建议什么权限都不要勾选。如果有开发需求,遵循权限最小原则进行勾选。之后命名一个有意义的名字,token就取到了。

注意的问题

明明在返回的json中看到一个用户的主页URL,但是通过API请求访问不到。
通常这种情况下服务器会返回404,注意检查一下状态码跳过这个用户。个别访问不到的也没有404,同样采取跳过。

使用github的API相关推荐

  1. GitHub Checks API帮助应用实现进一步的持续集成

    \ 看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料! \ \\ GitHub Checks API意在实现向持续集成工作流中添加代码检查,诸如对源代码文件做 ...

  2. GSoC: GitHub Checks API 项目第一阶段总结

    这篇博客将介绍 GSoC 项目 GitHub Checks API Plugin 在一阶段的相关进展. 简单来说,GitHub Checks API 就是一套可高度定制化接受 CI 报告的接口.CI ...

  3. GSoC: GitHub Checks API 项目第三阶段总结

    这篇文章将介绍 GitHub Checks API 项目在谷歌编程之夏第三阶段的相关工作. 在这个夏天的尾声,GitHub Checks API 项目迎来了它在 GSoC 的最后一段旅程.在这篇文章当 ...

  4. 爬取Github Web API 并存入Mysql数据库

    写在前面 本文内容为爬取GitHub的Web API并存入mysql数据库,内容为华为鸿蒙OS相关的代码. WEB API Web API是网络应用程序接口.它包含了广泛的功能,网络应用通过API接口 ...

  5. python github api_用python写一个GitHub Trending Api

    GitHub 给了开发者相当丰富的 API 接口 https://developer.github.com/v3/,包括认证,搜索,活动等接口,但就是没有提供获取 Trending 的接口.因此,需要 ...

  6. 用 Go 实现一个 GitHub Trending API

    背景 上一篇文章Go 每日一库之 bubbletea我们介绍了炫酷的 TUI 程序框架 - bubbletea.最后实现了一个拉取 GitHub Trending 仓库,并显示在控制台的程序.由于 G ...

  7. 用爬虫写一个 GitHub Trending API

    这学期打算做一个关于 GitHub 的 Android 应用,其中一个模块就是查看 GitHub 当天,当周,当月的热门项目和开发者.其实 GitHub 给了开发者相当丰富的 API 接口 devel ...

  8. Github Emojis API

    100: "https://assets-cdn.github.com/images/icons/emoji/unicode/1f4af.png?v8", 1234: " ...

  9. 使用经过oauth验证后的github API,避免调用频次超标的问题

    今天我打算开发一个小工具,使用github Restful API获取我一个仓库里的所有issues: https://api.github.com/repos/i042416/KnowlegeRep ...

最新文章

  1. JAVA网络IO编程
  2. windows服务守护进程bat脚本、windows窗体守护进程bat脚本
  3. mysql 存储过程 插入记录_mysql 存储过程 插入记录
  4. postman+newman生成html报告
  5. 163邮箱有传真服务器,网易企业邮箱邮件传真功能使用说明
  6. Linux每个目录的介绍
  7. python怎么控制小数点位数_谈谈关于Python里面小数点精度控制的问题
  8. 干货:解码OneData,阿里的数仓之路。
  9. Dart云平台-DartPad
  10. 开课吧Java课堂:特殊的字符串如何操作,字符串如何连接
  11. ubuntu 开启dhcp服务并配置
  12. SpringBoot(十六)_springboot整合JasperReport6.6.0
  13. 计算机 仿真 流体力学剪切应力,基于人体血管B型主动脉夹层三维建模及血流动力学仿真研究...
  14. 家中买的计算机配置,配置,教您买电脑主要看哪些配置
  15. malloc,calloc区别
  16. 基于OBD系统的量产车评估测试(PVE)
  17. linux 硬盘错误,linux – 硬盘读取错误……停止?
  18. PMP讲义第二章 项目运行环境
  19. rio隐藏的团队列表
  20. 《Java入门从笨鸟到菜鸟》读后感(三)

热门文章

  1. 微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
  2. 历时1个多月Copilot终于通过了
  3. 玩抖音短视频,注重这4个套路
  4. Tomcat 文件编码和URL编码设置UTF-8
  5. 还单身?不如来看看脱单神器!
  6. WMA格式文件头解析
  7. 经纬度和三维地心直角坐标系的相互转换
  8. Dojo:不容忽视的RIA框架
  9. linux中systemctl命令理解以及.service文件参数解析
  10. Cisco设备——静态路由配置案例