这也是在收集加密货币数据时的现实需求,正如之前一篇博客里说的,我们通常是通过wrapper library来访问GitHub API,但是当我使用PyGitHub的时候发现,当使用g.get_repo(name)获取repository时,如果name在GitHub上并不存在,则直接报错,并不能通过函数返回值等进行exception处理,为了简便期间,想手动判断是否存在该name,如果存在再使用PyGitHub收集其他信息。
正如之前的另一篇博客中介绍的,可以通过类似于:
curl -i -H 'Authorization: token %得到的40位Token%' https://api.github.com/repos/bitcoin/bitcoin/issues
这种方式用curl直接访问API,我们都知道,curl -H表示对请求头部进行设置,那怎么在Python中进行类似的设置呢?也很简单,我们可以使用Requests这个Python包:
import requests
headers = {'Authorization': 'token %得到的40位Token%'}
r = requests.get(url,headers=headers)
if(r.status_code != 404):
这样就可以基本实现上面说的目的了,关于Requests的使用,也可以参考这里:
https://www.cnblogs.com/lilinwei340/p/6417689.html
GitHub API authentication的基本信息可以参考这里:
https://developer.github.com/v3/#authentication