import webbrowser
import requests
API_KEY = 'zd9Xe7AGqL88aW6q'
SECRET_KEY = 'DRQeMNkxdcEBBv8B'
class BaiduPan:
def __init__(self):
self.login_status = False
def login(self):
code_url = f'https://openapi.baidu.com/oauth/2.0/authorize?response_type=code&client_id={API_KEY}&redirect_uri=oob&scope=basic,netdisk&display=tv&qrcode=1&force_login=1'
webbrowser.open(code_url)
code = input('输入授权码(浏览器扫码登录):')
access_token_url = f'https://openapi.baidu.com/oauth/2.0/token?grant_type=authorization_code&code={code}&client_id={API_KEY}&client_secret={SECRET_KEY}&redirect_uri=oob'
print(access_token_url)
self.access_token = requests.get(access_token_url).json()['access_token']
self.get_user_info()
def get_user_info(self):
info = requests.get('https://pan.baidu.com/rest/2.0/xpan/nas?method=uinfo',
params={'access_token': self.access_token}).json()
self.login_status = info['errno'] == 0
if self.login_status:
print('-' * 10, info['baidu_name'], '-' * 10)
print('欢迎【', info['netdisk_name'], '】')
vip = '普通用户'
if info['vip_type'] == 1:
vip = '普通会员'
elif info['vip_type'] == 2:
vip = '超级会员'
print('等级:', vip)
else:
print('登录失败!')
def file_list(self, dir='/'):
files = 'https://pan.baidu.com/rest/2.0/xpan/file?method=list'
info = requests.get(files, params={'access_token': self.access_token, 'dir': dir}).json()
if info['errno'] == 0:
print('-' * 10, '文件目录 【', dir, '】', '文件:', len(info['list']), '-' * 10)
for file in info['list']:
print(file['server_filename'])
if __name__ == '__main__':
pan = BaiduPan()
pan.login()
pan.file_list(dir='/')
功能实现:
登录
获取用户信息
打开目录(切换文件目录)
其他功能尚未开发…各位根据接口开发即可