使用python开发 百度网盘接口

官网API

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='/')

在这里插入图片描述

功能实现:

登录

获取用户信息

打开目录(切换文件目录)

其他功能尚未开发…各位根据接口开发即可

发布了139 篇原创文章 · 获赞 24 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/mbh12333/article/details/103601256