某du盘下载限速严重,这里是我常用的一套解决方案,大家可以用直链下载助手+idm,我比较怕麻烦,就写了一个简易的客户端,还有很多功能没能实现,大家可以给点建议,共同交流讨论
import requests
import easygui as g
import os
#--------------------常数区--------------------
res=requests.session()
cookie=open('cookie.txt','r').read()
#cookie.txt里把抓到的cookie粘进去就可以了
h={
'User-Agent': 'netdisk;P2SP;2.2.60.26'
,'Cookie': cookie
}
#-------------------函数区----------------------
def download(url,dir,filename):
os.system('aria2c -s 2 -x 2 -j 2 -o "'+filename+'" -d "'+dir+'" '+' --header="User-Agent: netdisk;P2SP;2.2.60.26" --file-allocation=none "'+url+'"')
#使用aria2下载,也可复制下载链接用idm下载
def getlist(pa,dir):
#获取文件列表
url='https://pan.baidu.com/api/list?order=time&dir='+pa
dic={
}
l=res.get(url,headers=h).json()['list']
for i in l:
isdir=i['isdir']
path=i['path']
name=i['server_filename']
dic.update({
name:[path,isdir]})
choi=g.multchoicebox('选择文件','',choices=dic,preselect=None)
if choi!=None:
for i in choi:
if dic[i][1]==0:
geturl(i,dic[i][0],dir)
elif dic[i][1]==1:
dir=dir+'/'+i
getlist(dic[i][0],dir)
elif choi==None:
pass
def geturl(name,path,dir):
#获取下载链接
url='http://pcs.baidu.com/rest/2.0/pcs/file?app_id=778750&ver=4.0&method=locatedownload&to=d0 HTTP/1.1&path='+path
try:
s=res.get(url,headers=h).json()['urls'][0]['url']
print(s)
if os.path.exists(dir+'/'+name)==False:
download(s,dir,name)
except:
print(path)
pass
if __name__ == '__main__':
dir = g.diropenbox('选择文件保存位置')
getlist('%2F',dir)