Python 如何使用 github api 从 GitHub 下载存储库 zip 文件
Python How to download repository zip file from GitHub using github api
我正在尝试使用 api 下载我的存储库的 zip 文件,但无法这样做。
GitHub 文档:github-download-zip-ref
我的代码有什么问题?感谢您的帮助。
我只有404: not found error
import requests
import wget
from requests.api import request
headers = {"Authorization" : 'token ***', "Accept": 'application/vnd.github.v3+json'}
parameters = {"owner": 'enestekerlek', "repo": 'Hello-World', "ref": 'ref'}
r =requests.get('https://api.github.com/user/repos', headers = headers)
if (r.status_code == 200) :
x = requests.get('https://api.github.com/repos/enestekerlek/Hello-World/zipball/ref', headers = headers, params = parameters)
print(x.content)
print(type(x))
else :
print("can not connect")
您的第一个问题可能是您在 url.
中使用了单词 ref
master/main 分支必须(可能)branch name
或 empty string
。
其他问题可能是您的存储库为空,因此没有可下载的内容。但是我无法检查它,因为我没有空的回购协议,而且我使用私有令牌只访问我的回购协议。
我用于测试的最小工作代码。
import requests
headers = {
"Authorization" : 'token ghp_r5***',
"Accept": 'application/vnd.github.v3+json'
# "Accept": '*.*',
}
OWNER = 'enestekerlek'
REPO = 'Hello-World'
OWNER = 'furas'
#REPO = 'python-examples' # it is downloading too long
REPO = 'AutoDraw'
REF = 'main' # branch name
REF = '' # master/main branch
EXT = 'zip'
#EXT = 'tar' # it also works
url = f'https://api.github.com/repos/{OWNER}/{REPO}/{EXT}ball/{REF}'
print('url:', url)
r = requests.get(url, headers=headers)
if r.status_code == 200:
print('size:', len(r.content))
with open(f'output.{EXT}', 'wb') as fh:
fh.write(r.content)
print(r.content[:10]) # display only some part
else:
print(r.text)
结果:
url: https://api.github.com/repos/furas/AutoDraw/zipball/
size: 663179
b'PK\x03\x04\n\x00\x00\x00\x00\x00'
我正在尝试使用 api 下载我的存储库的 zip 文件,但无法这样做。
GitHub 文档:github-download-zip-ref
我的代码有什么问题?感谢您的帮助。
我只有404: not found error
import requests
import wget
from requests.api import request
headers = {"Authorization" : 'token ***', "Accept": 'application/vnd.github.v3+json'}
parameters = {"owner": 'enestekerlek', "repo": 'Hello-World', "ref": 'ref'}
r =requests.get('https://api.github.com/user/repos', headers = headers)
if (r.status_code == 200) :
x = requests.get('https://api.github.com/repos/enestekerlek/Hello-World/zipball/ref', headers = headers, params = parameters)
print(x.content)
print(type(x))
else :
print("can not connect")
您的第一个问题可能是您在 url.
中使用了单词ref
master/main 分支必须(可能)branch name
或 empty string
。
其他问题可能是您的存储库为空,因此没有可下载的内容。但是我无法检查它,因为我没有空的回购协议,而且我使用私有令牌只访问我的回购协议。
我用于测试的最小工作代码。
import requests
headers = {
"Authorization" : 'token ghp_r5***',
"Accept": 'application/vnd.github.v3+json'
# "Accept": '*.*',
}
OWNER = 'enestekerlek'
REPO = 'Hello-World'
OWNER = 'furas'
#REPO = 'python-examples' # it is downloading too long
REPO = 'AutoDraw'
REF = 'main' # branch name
REF = '' # master/main branch
EXT = 'zip'
#EXT = 'tar' # it also works
url = f'https://api.github.com/repos/{OWNER}/{REPO}/{EXT}ball/{REF}'
print('url:', url)
r = requests.get(url, headers=headers)
if r.status_code == 200:
print('size:', len(r.content))
with open(f'output.{EXT}', 'wb') as fh:
fh.write(r.content)
print(r.content[:10]) # display only some part
else:
print(r.text)
结果:
url: https://api.github.com/repos/furas/AutoDraw/zipball/
size: 663179
b'PK\x03\x04\n\x00\x00\x00\x00\x00'