'''

遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料

'''

VERSION = "VERSION 1.0.0"

defcheckUrl(url: str)-> str:

m1 = re.match(

"https?://pan.baidu.com/s/1([a-zA-Z0-9_-]{5,22})", url)

m2 = re.match(

"https?://pan.baidu.com/share/init?surl=([a-zA-Z0-9_-]{5,22})", url)

ifnotm1 andnotm2:

print( "参数不合法")

returnFalse

else:

returnTrue

defgetKey(url: str)-> bool:

ifcheckUrl(url):

try:

req = requests.get( f"https://node.pnote.net/public/pan?url={url}")

code = req.status_code

ifcode == 200:

data = dict(json.loads(req.text))

status = data.get( "status", False)

ifstatus:

returndata.get( "access_code", "未能查询到该链接的提取码,可能原因是:该链接不需要提取码或已过期")

else:

returndata.get( "messages", "为能查询到提取码")

elifcode == 404:

return"不存在该链接的记录"

exceptException ase:

returnf"请求服务器失败,错误代码:{code}"

defget_parser():

parser = argparse.ArgumentParser()

parser.deion = "百度网盘提取码一键获取器"

parser.add_argument( 'urls', metavar= "urls", type=str, nargs= "*",

help= '设置要获取提取码的链接(多个链接请用空格分隔)')

parser.add_argument( '-v', '--version', action= 'store_true',

help= '版本号')

returnparser

defcommand_line_runner():

parser = get_parser()

args = vars(parser.parse_args())

ifargs[ 'version']:

print(VERSION)

return

s_time = time.time()

iflen(args[ 'urls']) > 1:

foritem inargs[ "urls"][ 1:]:

print( f"{item}:rnt{getKey(item)}")

e_time = time.time()

print( f"nn操作完毕,总耗时:{e_time-s_time}秒")

defmain():

command_line_runner()

if__name__ == "__main__":

main()

运行效果如下图所示:

v2

'''

遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料

'''

importargparse

importtime

importre

importrequests

fromdatetime importdatetime

importjson

accessKey = "4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD"

clientVersion = "web-client"

defgetPid(url: str)-> str:

matches = re.match(

"https?://pan.baidu.com/s/1([a-zA-Z0-9_-]{5,22})", url)

returnmatches[ 1] ifmatches elseNone

defgetUuid(pid: str)-> str:

returnf"BDY-{pid}"

defgetKey(url: str)-> str:

pid = getPid(url)

uuid = getUuid(pid)

headers = {

"type": "GET",

"data": '',

"dataType": "json"

}

url = f"http://ypsuperkey.meek.com.cn/api/items/{uuid}?access_key={accessKey}&client_version={clientVersion}&{datetime.utcnow()}"

try:

req = requests.get(url, headers=headers)

code = req.status_code

ifcode == 200:

data = json.loads(req.text)

accessCode = data.get( "access_code", None)

return"没找到提取密码,o(╥﹏╥)o"if(accessCode == "undefined"oraccessCode == NoneoraccessCode == "") elseaccessCode

elifcode == 400:

return" 服务器不理解请求的语法"

elifcode == 404:

return"不存在该链接的记录"

else:

returnf"请求服务器失败,错误代码:{code}"

exceptException ase:

returne

defget_parser():

parser = argparse.ArgumentParser()

parser.deion = "百度网盘提取码一键获取器"

parser.add_argument( 'urls', metavar= "urls", type=str, nargs= "*",

help= '设置要获取提取码的链接(多个链接请用空格分隔)')

parser.add_argument( '-v', '--version', action= 'store_true',

help= '版本号')

returnparser

defcommand_line_runner():

parser = get_parser()

args = vars(parser.parse_args())

ifargs[ 'version']:

print(VERSION)

return

s_time = time.time()

iflen(args[ 'urls']) > 1:

foritem inargs[ "urls"][ 1:]:

print( f"{item}:rnt{getKey(item)}")

e_time = time.time()

print( f"nn操作完毕,总耗时:{e_time-s_time}秒")

defmain():

command_line_runner()

if__name__ == "__main__":

main()

运行效果如下图所示:

总结

v1 版本和 v2 版本是通过请求不同的接口方式来实现的, v2 接口的数据要相对更准确一些。具体可查阅具体的代码实现。

如果你觉得上述代码不错的话,欢迎访问对应的仓库地址: baidupankey 进行 star 、fork 和 follow。

python网盘提取码怎么用_Python 一键获取百度网盘提取码相关推荐

  1. js使用正则表达式自动获取百度网盘和123云盘分享链接里的网址和提取码

    导读: 来说一下具体的需求,我的资源网站添加源码时,需要填写 百度网盘下载链接和提取码,上传文件到百度网盘后,分享文件后有个"复制链接及提取码"的按钮,如下图: 复制出来的内容大致 ...

  2. python 百度网盘库 根据文件名获取网盘链接_GitHub - tychxn/baidu-wangpan-parse: 获取百度网盘分享文件的下载地址...

    百度网盘分享文件下载链接解析 功能 获取百度网盘分享文件的真实下载地址 将获取到的下载链接复制到IDM.FDM等下载器即可实现高速下载,避免使用百度网盘客户端 运行环境 Python3 (兼容Pyth ...

  3. python百度网盘获取群组信息失败_如何获取百度网盘群组邀请链接分享

    百度云网盘群组是一个广泛使用的功能,可以像qq群一样邀请大家进入,发送消息或者发送资源文件,特别是在分享链接容易出现审核失败,链接失效的情况下,通过建立群组来分享资源能够很好的避免资源失效的情况.以前 ...

  4. 百度网盘Mac版如何分享链接?创建百度网盘 for Mac分享链接的方法

    想把自己百度网盘里的数据分享给朋友,该怎么操作呢?有很多朋友使用百度网盘,可以很轻松的自己的文件上传到网盘上,并可跨终端随时随地查看和分享.今天给大家分享的是创建百度网盘 for Mac分享链接的方法 ...

  5. JAVA获取百度网盘下载真实地址

    这是一个java写的获取百度网盘真实下载链接进行下载的程序.  程序里面一些参数拼接是根据浏览器抓包来的.具体的抓包方法网上一大堆,可以参考.这里给出了源码和导出的jar包.  url网址使用于百度分 ...

  6. 获取百度网盘下载真实地址

    这是一个java写的获取百度网盘真实下载链接进行下载的程序. 程序里面一些参数拼接是根据浏览器抓包来的.具体的抓包方法网上一大堆,可以参考.这里给出了源码和导出的jar包. url网址使用于百度分享的 ...

  7. 百度网盘 | 爱奇艺万能播放器与百度网盘的功能关联体验

    文章目录 百度网盘与爱奇艺万能播放器 百度网盘 爱奇艺万能播放器 关联使用 百度网盘与爱奇艺万能播放器 可能大家心中都有一个疑问,百度网盘与爱奇艺万能播放器这两个能有啥关系? 这就不得不提一下 百度 ...

  8. 2023 最新一键下载百度网盘/阿里云盘/百度文库/道客巴巴/原创力文档

    苏生不惑第415 篇原创文章,将本公众号设为星标,第一时间看最新文章. 之前分享过录制了个视频:2022年11月一键下载百度网盘/百度文库/豆丁/道客巴巴/原创力文档 ,2023年再更新下 . 爱奇艺 ...

  9. Java百度网盘创建链接,java获取百度网盘真实下载链接的方法

    本文实例讲述了java获取百度网盘真实下载链接的方法.分享给大家供大家参考.具体如下: 目前还存在一个问题,同一ip在获取3次以后会出现验证码,会获取失败,感兴趣的朋友对此可以加以完善. 返回的Lis ...

最新文章

  1. 运维利器-ClusterShell集群管理操作记录
  2. leetcode 1319. 连通网络的操作次数(并查集)
  3. Android WindowManager实现悬浮窗效果 (一)——与当前Activity绑定
  4. 全网首发:怎样制作CDKEY(5)-让CDKEY更混乱
  5. Java框架全开源商城PC+手机版+微商城独立版+全开源系统源码
  6. dubbo 在centos7下安装
  7. java间接调用_无法解析类型 java.util.Map$Entry。从必需的 .class 文件间接引用了它...
  8. 2020语数外百度网盘小学全集下载
  9. php模拟登录强智教务,湖南强智科技教务系统python模拟登录并爬取成绩(财院)...
  10. VC++2010解决上位机dll报错(load library error)
  11. 可在线接收验证短信的网站
  12. Cisco IGRP
  13. 水下SLAM论文!!!
  14. 纪中DAY15做题小结
  15. php绕过宝塔,一句命令绕过宝塔面板强制绑定账号
  16. 时间抖动(jitter)--学习笔记
  17. Qt+OpenCV联合开发(二十五)--直方图均衡化(equalizeHist)
  18. java进行excel读取和写入。
  19. 国办发布09年放假安排 国庆中秋合并连休八天
  20. 产品经理入门到大神的资料全推荐

热门文章

  1. Python openpyxl 之 Excel 文档简单操作
  2. java8中的时间处理6 - 格式化
  3. 最小树形图及其生产方法
  4. python学习 第七篇 sql优化
  5. VMware虚拟机文件夹中各文件作用详解
  6. puppet aix之自动化用户管理
  7. 如何让自己时刻冷静的方法_4个方法,教你如何真正爱自己
  8. alexa技能个数_如何在您的技能中使用Alexa演示语言
  9. 播客#47:劳伦斯·布拉德福德
  10. php执行mysql insert,当执行mysql insert 时插入两条是咋回事