Python上传文件到百度网盘(一)

2023-05-16

前言

最近由于突发奇想要下载某网站电影,当然资源也是爬来的,然后是一堆M3u8格式的URL,为了保证防止资源后续失效的情况,打算先下载下来,然后加密压缩(~。~你懂的),然后上传百度网盘,哈哈。下面就开始我们的冒险之旅吧~~

第一步:研究百度网盘开放平台api

https://pan.baidu.com/union/document/entrance

第二部:建立应用获取对应的appkey巴拉巴拉。。。目的就是为了获取百度api的token

这里,我们使用最简单获取token的方法:

 再贴一张图:

这里操作完呢,我们的token就到手了,一个月过期哈,够我们自己折腾了,如果要上云的话,就参考server的获取token的方式,可以直接吧token丢到你的接口里面,想存哪存哪,还可以二次刷新,这里不拓展了。

第三部:撸代码

这里我就使用到了上传文件的接口,如需其他接口也是一样的哈,不多说了上代码:

# -*- coding: UTF-8 -*-
import os.path

import demjson
import requests


def pre_create_file(access_token, remote_path, local_path, block_list, content_md5, slice_md5):
    url = "http://pan.baidu.com/rest/2.0/xpan/file?method=precreate&access_token=" + access_token
    file_size = os.path.getsize(local_path)
    payload = {'path': remote_path,
               'size': file_size,
               'rtype': '3',
               'isdir': '0',
               'autoinit': '1',
               'block_list': block_list,
               'content-md5': content_md5,
               'slice-md5': slice_md5
               }
    files = [

    ]
    headers = {
        'Cookie': 'BAIDUID=56BE0870011A115CFA43E19EA4CE92C2:FG=1; BIDUPSID=56BE0870011A115CFA43E19EA4CE92C2; PSTM=1535714267'
    }
    response = requests.request(method="POST", url=url, headers=headers, data=payload, files=files)
    print("pre_create_file resp is ", response.text.encode('utf8'))
    return demjson.decode(response.text.encode('utf8'))


def part_upload(access_token, remote_path, upload_id, seq, local_path):
    url = "https://d.pcs.baidu.com/rest/2.0/pcs/superfile2?method=upload&access_token=" + access_token + \
          "&path=" + remote_path + \
          "&type=tmpfile&uploadid=" + upload_id + \
          "&partseq=" + str(seq)
    payload = {}
    files = [
        ('util', open(local_path, 'rb'))
    ]
    headers = {
        'Cookie': 'BAIDUID=56BE0870011A115CFA43E19EA4CE92C2:FG=1; BIDUPSID=56BE0870011A115CFA43E19EA4CE92C2; PSTM=1535714267'
    }

    response = requests.request("POST", url, headers=headers, data=payload, files=files)

    print(response.text.encode('utf8'))


def create_remote_file(access_token, remote_path, upload_id, size, block_list):
    url = "https://pan.baidu.com/rest/2.0/xpan/file?method=create&access_token=" + access_token

    payload = {'path': remote_path,
               'size': size,
               'rtype': '1',
               'isdir': '0',
               'uploadid': upload_id,
               'block_list': block_list}
    files = [

    ]
    headers = {
        'Cookie': 'BAIDUID=56BE0870011A115CFA43E19EA4CE92C2:FG=1; BIDUPSID=56BE0870011A115CFA43E19EA4CE92C2; PSTM=1535714267'
    }
    response = requests.request("POST", url, headers=headers, data=payload, files=files)
    print(response.text.encode('utf8'))

这个文件呢,就是我们可爱的上传文件的百度网盘的接口了。

总结:

好啦好啦,小渃先和你讲到这,下班了下班了,要回家看电视了,后续再更。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python上传文件到百度网盘(一) 的相关文章

  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo

随机推荐

  • i2c总线最多可以挂多少个ic

    i2c总线最多可以挂多少个ic 有哪些因素决定 xff1f 1 由IIC地址决定 xff0c 8位地址 xff0c 减去1位广播地址 xff0c 是7位地址 xff0c 2 7 61 128 xff0c 但是地址0x00不用 xff0c 那
  • 竞品分析十大维度

    一 市场现状 行业现状 xff08 200 300字 xff09 1 以行业的全局进行分析 xff0c 市场的容量 xff0c 市场的发展前景 2 目前市场上的行情是怎么样的 xff1f 哪些是直接竞品 xff0c 哪些是间接竞品 xff1
  • 一个程序员的回忆录

    要么庸俗 xff0c 要么孤独 要么庸俗 xff0c 要么孤独 叔本华 今天是一个特殊的时间 xff0c 一个国庆和中秋在同一天的时间 特殊的时间总会回想起一些事情 xff0c 当事情可以用文章来表达的时候 xff0c 我便不再孤单 xff
  • My_Admin 独立系统开发第一节

    项目介绍 My Admin 项目后台该后台采用Tp5 43 layuimini 研发 xff0c 系统呢是准备研发一个垃圾回收小程序 垃圾回收小程序是结合市场需求开发的一个集运营与跑男端的垃圾回收小程序 目的是企业可以通过招募跑男 xff0
  • uni-app快速入门开发一个项目

    hello 大家好 xff0c 我是老张 xff0c 有的人称呼我为张工 一个不务正业的PHP开发者 xff0c 立志于做一个全栈开发工程师 今天呢 xff0c 我想补充一章关于uni app 如何开发 xff0c 如何建立项目 xff0c
  • uni-app开发知识付费系统个人中心界面

    hello 大家好 xff0c 我是老张 xff0c 那个不务正业的PHP开发工程师 今天是我使用uni app开发在线教育系统的第三天了 xff0c 今天主要开发了底部菜单的 xff0c 学习页面 xff0c 个人中心页面 xff0c 先
  • 阿里云负载均衡的配置和使用场景

    解释下什么叫做负载均衡 负载均衡 xff0c 英文名称为Load Balance xff0c 其含义就是指将负载 xff08 工作任务 xff09 进行平衡 分摊到多个操作单元上进行运行 xff0c 例如FTP服务器 Web服务器 企业核心
  • phpstudy下的nginx服务器显示目录

    在linux下配置Nginx的目录显示 linux下的基本命令 cd 切换目录 ls 查看目录 找到你的phpstudy的环境 cd 进入环境你会看到如下图一样所示的图片 cd server 使用 ls查看你会得到如图所示 cd nginx
  • 我与AI的相识

    AI人工智能 xff0c 作为一名程序员竟然不懂AI xff0c 好吧 xff01 我就是不懂 xff0c 最开始是听老师在帮助我们分析自己所学的专业行情时 xff0c 老师提到了AI xff0c 这时我是懵逼的状态什么是AI xff0c
  • <PHP 输出九九乘法表 for循环 递归>《正三角》《倒三角》

    lt php header 34 content type text html charset 61 utf 8 34 九九乘法表 正三角 64 var integer for i 61 1 i lt 61 9 i 43 43 for j
  • TP5+七牛云文件上传

    利用七牛云作为图片服务器来使用 xff0c 为什么使用七牛云 xff0c 使用七牛云的好处有很多 xff0c 节省自己的服务器空间 xff0c 七牛云的使用方便 xff0c 便宜 好了下面就说下TP5使用七牛云进行文件上传 第一步 xff0
  • 七牛云图片的预览

    上一个博客写了如何将本地图片上传到七牛云 xff0c 那么问题来了 xff0c 上传完毕后 xff0c 我们怎么才能在本地进行展示查看呢 xff1f 按照我们以前的思路那就是 xff0c 七牛云的域名 43 图片的名字 xff0c 但是呢
  • 时间序列预测比赛小结

    一 时间序列基础 1 什么是时间序列 xff1f 表面上 xff0c 时间序列就是按照时间的先后顺序排列的一串数值数学意义上 xff0c 时间序列是一串随机变量 2 研究时间序列的目的 xff1f 点预测区间预测 3 什么样子的时间序列可预
  • Ubuntu下使用ECM上网介绍

    1 背景 为了验证展锐原厂的USB CDC EMC xff08 Ethernet Control Model xff09 驱动的上网功能 xff0c 需要搭建Linux系统 现将整个流程整理如下 2 环境搭建 安装虚拟机 VMware wo
  • 如何将本地代码上传到远程库main分支中

    1 本地代码上传到github 1 1 首先修改默认分支 在2020年10月1起 xff0c github默认主分支从master更名为main xff0c 以上提交方式会默认创建一个master分支 xff0c 为保持一致性 xff0c
  • 如何在putty终端上打开图形化管理工具

    有时候需要在putty这样的图形终端中打开图形化的管理工具会出现下面的错误 xff1a root 64 node2 Traceback most recent call last File 34 usr share virt manager
  • IMU/光电鼠标/轮式编码器的多传感器融合(非线性卡尔曼滤波)

    各传感器分析 imu 对于平面移动机器人 xff08 如扫地机器人 xff09 xff0c IMU只需要一般只需要使用陀螺仪的偏航角 xff08 YAW xff09 xff0c 陀螺仪的偏航角有时间漂移的误差存在 xff0c 一般分为系统漂
  • IMU/电子罗盘/轮式编码器的多传感器融合(非线性卡尔曼滤波)

    传感器分析 电子罗盘 xff08 Compass magnetometer xff09 对于平面运动机器人而言 xff0c 只需要xy平面上的数据即可求出来绝对角度 xff0c 这里电子罗盘需要做椭圆 gt 圆的传感器标定 电子罗盘上车的标
  • kalibr使用笔记

    官网 GitHub ethz asl kalibr The Kalibr visual inertial calibration toolbox The Kalibr visual inertial calibration toolbox
  • Python上传文件到百度网盘(一)

    前言 最近由于突发奇想要下载某网站电影 xff0c 当然资源也是爬来的 xff0c 然后是一堆M3u8格式的URL xff0c 为了保证防止资源后续失效的情况 xff0c 打算先下载下来 xff0c 然后加密压缩 xff08 xff5e x