- A+
前几篇文章介绍了百度网盘文件如何批量重命名,包括使用ES浏览器app、油猴js脚本工具、老毛子百度网盘批量重名软件以及百度网盘api等方式,今天继续挖掘百度网盘的功能:链接离线下载。百度网盘离线下载功能可以支持多种链接形式,如:BT链接、http、https、ftp、电驴、磁力链协议等。有时网络资源共享人数较少时下载非常缓慢,而且高清电影非常大好几G,严重占用了电脑的硬盘,特别是使用ssd固态硬盘的电脑。当资源较多且很多具有收藏价值时,百度网盘的离线下载功能就发挥作用了。一方面可以快速离线保存资源,同时百度网盘还可以在线观看,非常方便。但是,bt链接较多时,一个个进行手动离线下载会不方便。因此,本文特意介绍了如何使用python3的requests库对资源链接进行离线下载。
一、运行使用环境
本次测试使用的环境是Windows10 64位操作系统,python3.6的版本,pycharm编辑器,以及需要用到牛逼闪闪的requests库。requests库通过pip进行安装即可。
二、离线原理介绍
运用python requests库实现百度网盘批量离线下载本质上是模拟浏览器进行离线下载。因此,需要先手动操作一遍,了解离线下载的原理。打开Chrome浏览器或者搜狗浏览器(需切换到高速模式)登录自己的百度网盘后右键点击审查元素,接着是1.切换到network模式,2.新建离线任务并粘贴离线链接,3.清除资源链接,4.点击确定提交。如下图所示:
提交后会出现相应的post资源的链接,请求类型为post提交数据,链接格式如下:
https://pan.baidu.com/rest/2.0/services/cloud_dl?channel=chunlei&web=1&app_id=250528&bdstoken=特殊值&logid=特殊值&clienttype=0
同时链接提交的FormData包含method、app_id、source_url、save_path、type五个信息,分别是处理的方式、app编码、离线资源链接、保存的路径及资源的类型,其中主要需要修改的是离线资源的链接以及可以修改的路径。另外,提交资源还要有cookie信息。
综上,再进行离线下载时需要处理如下几个信息:
1.提交链接中的bdstoken=特殊值&logid=特殊值,里面的两个特殊值换成自己登录后的。
2.登录cookie信息
3.FormData数据里面的source_url和save_path
三、离线源码下载
- #?coding=utf-8
- import?time
- import?requests
- def?lixian(source_url):
- ????#?定义post的地址
- ????post_url?=?'https://pan.baidu.com/rest/2.0/services/cloud_dl?channel=chunlei&web=1&app_id=250528&bdstoken={}&logid={}&clienttype=0'.format(bdstoken,?logid)
- ????heads?=?{
- ????????"Host":?"pan.baidu.com",
- ????????"Origin":?"http://pan.baidu.com",
- ????????"Referer":?"http://pan.baidu.com/disk/home",
- ????????"User-Agent":?"Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/45.0.2454.85?Safari/537.36",
- ????????"Cookie":?cookie
- ????}
- ????pdata?=?{"method":?"add_task",
- ?????????????"app_id":?"250528",
- ?????????????"source_url":?source_url,
- ?????????????"save_path":?save_path}
- ????res?=?requests.post(post_url,?data=pdata,?headers=heads)
- ????if?res.status_code?==?200:
- ????????print(res.text)
- if?__name__?==?'__main__':
- ????bdstoken?=?''?#自己的bdstoken值
- ????logid?=?''?#自己的logid值
- ????save_path?=?'/'?#离线文件保存路径,默认为根目录
- ????cookie?=?''?#自己登录后获取的cookie值
- ????url_list?=?[
- ????????'magnet:?xt=urn:btih:5b8764398069ab5287db92526f54f5e493e7f18c&dn=%e9%98%b3%e5%85%89%e7%94%b5%e5%bd%b1www.ygdy8.com.%e7%81%ab%e7%8b%90%e4%b8%80%e5%8f%b7%e5%87%ba%e5%87%bb.BD.720p.%e4%b8%ad%e8%8b%b1%e5%8f%8c%e5%ad%97%e5%b9%95.mkv&tr=udp%3a%2f%2ftracker.leechers-paradise.org%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2feddie4.nl%3a6969%2fannounce&tr=udp%3a%2f%2fshadowshq.eddie4.nl%3a6969%2fannounce',
- ????????'http://gd.189.cn/dg/push/20180604/618tmkdxyad.htm?SP=ABzs/PzoPOz83Og7yXnpGRmpOgmJugy8vOxs/Pg86Dy8vOxs/Pg5uYnpuMk5vMy83OyM3Kyr/OyczRmJuDzs7M0cjI0c7G0crGg86Dzc/LysjNg87LzcnIxoPOz8/Oz86DiIiI0ZuGi4vH0ZGai4POys3GzsjPysfGg86Dz4PPg87NzP=='
- ????]
- ????for?li?in?url_list:
- ????????lixian(li)
- ????????time.sleep(3)
- 我的微信
- 这是我的微信扫一扫
-
- 我的微信公众号
- 我的微信公众号扫一扫
-







