偶然间想到的
目前代码还没有完全写完,但是有一些思路了,应该大差不差的
首先模拟一次分享链接进行抓包
就不放图了
直接上代码
import requests
cookies = {
'BDUSS': '替换为你自己的,下面会放出获取教程',
}
headers = {
'Accept': 'application/json, text/plain, */*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'https://pan.baidu.com',
'Pragma': 'no-cache',
'Referer': 'https://pan.baidu.com/disk/main',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
'sec-ch-ua': '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
}
params = {
'web': '1',
'dp-logid': '79957000643823030154',
}
data = {
'period': '0',
'pwd': '8888',
'eflag_disable': 'true',
'channel_list': '[]',
'schannel': '4',
'fid_list': '[1070531854436629]',
}
response = requests.post('https://pan.baidu.com/share/set', params=params, cookies=cookies, headers=headers, data=data)
print(response.text)
首先说一下BDUSS的获取教程
随便打开一个文件夹,这个过程需要你提前打开开发者工具进行抓包,也就是在没有打开文件夹之前就打开开发者工具,也就是F12,找到网络,或者network。然后打开一个文件夹,在请求列表中一般会有下面的一个请求,一般双击该值就可以得到内容,然后粘贴到代码中。
代码中的请求表单,也就是data,经过测试
period 的值是链接有效期天数,分别为,1 ,7, 30 ,365 ,0 ,,,0则代表永久
pwd代表的是密码。很遗憾这个并不能模拟随意生成,因为在这个请求的返回数据中没有pwd的返回值,所以一般是固定的,当然你也可以写入到excel中,然后上传,这样子就不至于所有文件链接都用一个提取码
里面最重要的一个就是
‘fid_list’: ‘[120961216429429]’,
这个值是文件的专属data-id
每一个文件都不一样,但是在某个文件夹中他是采用的列表api请求,这个也可以通过抓包获取
在返回数据中有这么一个值
他就是每个文件的data-id值,这两个请求中的负载或者是cookie都没有加密,所以这个还是比较简单的,你们如果有需要,我后面写为软件,也可以找我定制,目前的想法是,通过固定的文件夹路径,先获取文件data-id循环请求,拿到数据然后获取分享链接与文件名称。有想法的可以在评论区留言有时间我会写成exe软件公布出来