python破解百度網盤提取碼_Python 一鍵獲取百度網盤提取碼

20190608140532178033.gif

該 GIF 圖來自于官網,文末有給出鏈接。

描述

依托于百度網盤巨大的的云存儲空間,絕大數人會習慣性的將一些資料什么的存儲到上面,但是有的私密鏈接需要提取碼,但是讓每個想下載私密資源的人記住每一個提取碼顯然是不現實的。這個時候,云盤萬能鑰匙 誕生了,我們通過安裝相應的瀏覽器插件就可以自動獲獲取相應鏈接的提取碼。我在 Github 上看了一下,有 Web JS 版的, python 版的貌似還沒有找到,所以我參照了JS 版本和官網的請求接口寫了兩種方式的獲取腳本。

實現

下述兩種方式的具體實現就不做代碼解釋了,思路都是一樣,通過請求接口,拿到數據,然后返回即可。

V1

"""

Author:hippieZhou

Date:20190608

Description: Get BaiDuYun shared link's Code

"""

import argparse

import re

import requests

import json

import time

VERSION = "VERSION 1.0.0"

def checkUrl(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)

if not m1 and not m2:

print("參數不合法")

return False

else:

return True

def getKey(url: str) -> bool:

if checkUrl(url):

try:

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

code = req.status_code

if code == 200:

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

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

if status:

return data.get("access_code", "未能查詢到該鏈接的提取碼,可能原因是:該鏈接不需要提取碼或已過期")

else:

return data.get("messages", "為能查詢到提取碼")

elif code == 404:

return "不存在該鏈接的記錄"

except Exception as e:

return f"請求服務器失敗,錯誤代碼:{code}"

def get_parser():

parser = argparse.ArgumentParser()

parser.description = "百度網盤提取碼一鍵獲取器"

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

help='設置要獲取提取碼的鏈接(多個鏈接請用空格分隔)')

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

help='版本號')

return parser

def command_line_runner():

parser = get_parser()

args = vars(parser.parse_args())

if args['version']:

print(VERSION)

return

s_time = time.time()

if len(args['urls']) > 1:

for item in args["urls"][1:]:

print(f"{item}:\r\n\t{getKey(item)}")

e_time = time.time()

print(f"\n\n操作完畢,總耗時:{e_time-s_time} 秒")

def main():

command_line_runner()

if __name__ == "__main__":

main()

運行效果如下圖所示:

20190608140532686842.png

v2

"""

Author:hippieZhou

Date:20190608

Description: Get BaiDuYun shared link's Code

"""

import argparse

import time

import re

import requests

from datetime import datetime

import json

accessKey = "4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD"

clientVersion = "web-client"

def getPid(url: str) -> str:

matches = re.match(

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

return matches[1] if matches else None

def getUuid(pid: str) -> str:

return f"BDY-{pid}"

def getKey(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

if code == 200:

data = json.loads(req.text)

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

return "沒找到提取密碼,o(╥﹏╥)o" if (accessCode == "undefined" or accessCode == None or accessCode == "") else accessCode

elif code == 400:

return " 服務器不理解請求的語法"

elif code == 404:

return "不存在該鏈接的記錄"

else:

return f"請求服務器失敗,錯誤代碼:{code}"

except Exception as e:

return e

def get_parser():

parser = argparse.ArgumentParser()

parser.description = "百度網盤提取碼一鍵獲取器"

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

help='設置要獲取提取碼的鏈接(多個鏈接請用空格分隔)')

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

help='版本號')

return parser

def command_line_runner():

parser = get_parser()

args = vars(parser.parse_args())

if args['version']:

print(VERSION)

return

s_time = time.time()

if len(args['urls']) > 1:

for item in args["urls"][1:]:

print(f"{item}:\r\n\t{getKey(item)}")

e_time = time.time()

print(f"\n\n操作完畢,總耗時:{e_time-s_time} 秒")

def main():

command_line_runner()

if __name__ == "__main__":

main()

運行效果如下圖所示:

20190608140533025722.png

總結

v1 版本和 v2 版本是通過請求不同的接口方式來實現的, v2 接口的數據要相對更準確一些。具體可查閱具體的代碼實現。

如果你覺得上述代碼不錯的話,歡迎訪問對應的倉庫地址: baidupankey 進行 star 、fork 和 follow。

相關參考

原文:https://www.cnblogs.com/hippieZhou/p/10990237.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534017.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534017.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534017.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

assertpythonraise_使用assertRaise測試異常消息

我試圖在一個條件引發自定義異常消息的函數內斷言異常.功能:if not Cart.objects.filter(membermember).count():raise CartDoesNotExist("Cart Does Not Exist for Member: %s ( %id )." % (member.email,member.id))現在,我能夠成功地產生獲得加注聲明所…

vs12新建ajax,VS2012下WebService?的創建,部署和使用

WebService,即Web服務,能使得運行在不同機器上的不同應用無須借助,專門的第三方軟件或硬件,就可相互交換數據或集成.第一次選擇WebService,是為了替代數據庫遠程連接.我們都知道當SQL允許遠程時,則要打開某一端口.但這一點在我們已經部署好的服務器上,卻是不被允許的,于是就選擇…

pythonsql注入_python使用mysql,sql注入問題

python使用mysql importpymysql connpymysql.connect( host 127.0.0.1, #連接地址 port 3306, #端口 user root, #用戶名 password , #密碼 database db, #庫名稱 charset utf8 #編碼格式 utf8,不是utf-8 ) cursor conn.cursor(pymsql.cursors.DictCursor) #產生一個游標,…

h5優秀控件_H5前端學習的js插件大全,基本包含了大部分的前端最前沿的js插件和庫。...

布局SuperEmbed.js - 是一個Javascript庫,可檢測出網頁上的內嵌視頻并使他們能夠變成響應式元素。demoScrollReveal - ScrollReveal插件使用戶能夠無比輕松地創建桌面和移動瀏覽器的網頁滾動動畫。demoBricks.js - 是一款超快的用于固定寬度元素的“磚石”布局生成器…

js 控制鼠標_JS逆向 | 面向小白之eval混淆

所有文章首發在我的微信公眾號“逆向新手”,更多逆向系列請關注公眾號,謝謝!聲明:本文只作學習研究,禁止用于非法用途,否則后果自負,如有侵權,請告知刪除,謝謝&#xff0…

mac mysql密碼錯誤_解決mac 下mysql安裝后root用戶登錄密碼錯誤問題

使用的mac OS 10.11 安裝mysql后訪問root/root用戶失敗,網上找了一些解決辦法,下面記錄下解決方法方便以后自己查詢概述(看懂下面就不用看了):停服務:sudo /usr/local/mysql/support-files/mysql.server stop安全模式…

python獲取軟件窗口句柄_Python獲取瀏覽器窗口句柄過程解析

句柄(handle)是C程序設計中經常提及的一個術語。它并不是一種具體的、固定不變的數據類型或實體,而是代表了程序設計中的一個廣義的概念。句柄一般是指獲取另一個對象的方法——一個廣義的指針,它的具體形式可能是一個整數、一個對…

mysql 副本 同步_副本機制與副本同步

1.管理其他副本的節點稱為Follower。每當Leader將新數據寫入本地存儲d的副本時,也會將數據更改寫入日志之中。每個Follower會從Leader那里獲取修改日志,并相應地更新數據到的本地副本之中,這樣,所有的在Follower上副本的修改順序會…

mongodb 輸出數組字段_MongoDb文檔操作、索引操作

學習主題:MongoDb學習目標:掌握mongodb文檔的更新掌握mongodb文檔的刪除掌握mongodb文檔的查找掌握mongodb文檔的條件操作符掌握mongodb中的索引操作Mongodb的更新方式Update()函數更新Save()函數更新Mongodb的update更新?Update用于更新已存…

表情符號mysql utf8mb4_mysql utf8mb4與emoji表情

一 什么是Emojiemoji就是表情符號;詞義來自日語(えもじ,e-moji,moji在日語中的含義是字符)表情符號現已普遍應用于手機短信和網絡聊天軟件。emoji表情符號,在外國的手機短信里面已經是很流行使用的一種表情。手機上如何使用emoji&…

html自適應_web前端入門到實戰:HTML 文檔流,設置元素浮動,導致父元素高度無法自適應的解決方法...

元素浮動定義float 屬性定義元素在哪個方向浮動。以往這個屬性總應用于圖像,使文本圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動。浮動元素會生成一個塊級框,而不論它本身是何種元素。如果浮動非替換元素,則要指定…

idea 遠程調試_我的天!你竟然不會用IDEA遠程調試Tomcat...

# 準備工作明確的遠程服務器的IP地址,某些我是:192.168.92.128關掉服務器防火墻:service iptables stop# 本地遠程服務器配置添加遠程服務器,如下圖復制遠程服務器自動生成的JVM參數,等下有用,如下圖&#…

mysql異步查詢 java_基于 mysql 異步驅動的非阻塞 Mybatis

雖然 spring5 也推出了 WebFlux 這一套異步技術棧,這種極大提升吞吐的玩法在 node 里玩的風生水起,但 java 世界里異步依舊不是主流,Vertx 倒是做了不少對異步的支持,但是其對于數據訪問層的封裝依舊還是挺精簡的,傳統…

跨域獲取后臺數據undefined_同源策略amp;JSONP跨域

同源策略&JSONP跨域同源策略 對于同源的定義,MDN給出了這樣的解釋:如果兩個頁面的協議,端口(如果有指定)和主機都相同,則兩個頁面具有相同的源。如何確定兩個頁面是否同源,只要比較兩個頁面…

python 除數不能為零的報錯有哪些_【社區精選40】Python錯誤處理及代碼調試方法(文末贈書中獎名單)...

本文整理自愛數據學院中的問答更多精彩問答,進入下方社區網站查看http://www.lovedata.cn/invitation社區精選話題 第40期Python錯誤處理及代碼調試方法一次寫完代碼程序并能夠正常運行的概率很小很小,總會有各種各樣的錯誤bug需要處理。有的報錯簡單&a…

利用python批量查詢企業信息_python實現批量獲取指定文件夾下的所有文件的廠商信息...

本文實例講述了python實現批量獲取指定文件夾下的所有文件的廠商信息的方法。分享給大家供大家參考。具體如下:功能代碼如下:import os, string, shutil,reimport pefileimport codecs, sysimport wximport struct#輸出中打印Unicode字符#sys.stdout co…

mac mysql prefpane_【MySQL數據庫開發之一】Mac下配置安裝數據庫-MySQL

本站文章均為那么從今天開始陸續會更新數據庫和Hibernate框架的博文,也是Himi學習的歷程記錄,希望大家能共同討論和研究;OK,本篇簡單介紹安裝吧,首先到MySQL官方網站:如上圖:點擊DOWNLOAD &…

系統新模塊增加需要哪些步驟_想要吸引人流,兒童樂園需要增加哪些新設備呢...

兒童樂園是現今最火爆的一個投資項目,因為它的主要消費群體是孩子,而現在的家長們對孩子們的寵愛,基本都會答應讓孩子們去兒童樂園里面玩耍。但是兒童樂園的投資經營者也會遇見一些小問題,例如兒童樂園添加設備要怎么選擇呢&#…

php mysql 圖像_php-向/從MySQL數據庫插入/查看圖像

我在DB中插入圖像時遇到問題.該表具有以下結構:> id-> INT(3)->自動增量>名稱-> VARCHAR(30)> extension-> VARCHAR(10)[可能太短]> img-> MEDIUMBLOB插入圖像的PHP代碼為:if($_FILES[file][error]0){$result is_uploaded_f…

照片打印預覽正常打印空白_小米發布口袋照片打印機,可無墨打印3寸背膠照片...

9月11日消息,小米推出一款小米口袋照片打印機。與之前的小米米家照片打印機相比,這款新品更加小巧便攜,體積接近充電寶大小,凈重僅181g,便于隨身攜帶。小米口袋照片打印機采用ZINK無墨技術打印,即使用嵌入紙…