目前我正在尝试获取所有 Github 用户位置。我正在使用 github3 python 库来获取位置。但是当我的 api 调用超过 5K 时,它会给我过度 API 使用错误。这是我的代码。
import github3
from datetime import datetime
import sys
def main(pswd):
g = github3.login(username="rakeshcusat", password=pswd)
current_time = datetime.now()
fhandler = open("githubuser_"+current_time.strftime("%d-%m-%y-%H:%M:%S"), "w")
for user in g.iter_all_users():
user.refresh()
try:
fhandler.write(" user: {0}, email: {1}, location: {2}\n".format(str(user), str(user.email), str(user.location)))
except:
print "Something wrong, user id : {0}".format(user.id);
fhandler.close()
if __name__ == "__main__":
if len(sys.argv) == 2:
main(sys.argv[1])
else:
print "Please provide your password"
我可以通过首先下载所有用户名来做到这一点,这将只是一个 API 调用。然后迭代下载用户位置。如果遇到过度使用,则等待一小时并在其离开的地方恢复 api 调用。但这似乎是一个蹩脚的解决方案,而且肯定需要更多时间(几乎 25 多个小时)。有人可以为我提供更好的方法吗?