博客
关于我
JAVA获取百度网盘下载真实地址
阅读量:579 次
发布时间:2019-03-11

本文共 1575 字,大约阅读时间需要 5 分钟。

除了undsrawing工具,只能了解如何获取百度网盘的真实下载链接


一、获取百度网盘真实下载链接的方法

1. 前置条件:

  • 操作系统:支持Java运行的操作系统(如Windows、Linux)
  • Java开发环境(JDK):版本为Java 8及以上
  • IDE:建议使用Eclipse或IntelliJ IDEA

2. 使用方法:

运行程序的命令如下:

java -jar BaiduPanURL.jar [你的百度网盘分享链接]

3. 使用说明:

  • 方括号中的 [你的百度网盘分享链接] 是你需要下载的资源地址
  • 如果不需要特定资源地址,可以直接运行 java -jar BaiduPanURL.jar
  • 如果遇到验证码需求,请在程序提示下输入正确验证码

二、程序FunctionFlags说明

本程序基于浏览器抓包技术,分析百度网盘的API接口,构建了一个获取百度网盘真实下载链接的工具。以下是程序的主要功能和实现原理:

1. 获取百度网盘的cookie

第一步是获取百度网盘页面的cookie。通过抓包可以获取cookie的值,并进行解析和加密处理。

2. 解析分享链接的参数

通过第三方工具(如curl、Postman)抓取页面的body参数,提取出资源ID、文件名、大小等必要信息。

3. 发送sharedownload请求

构造一个.post请求,发送到百度网盘的API接口 /api/sharedownload,并附带必要的参数。

4. 解析服务器返回的JSON

接收服务器返回的JSON数据,提取出真实的下载链接(dlink字段)。

5. 处理验证码(如需)

如果用户连续下载超出限制将被返回验证码。程序会自动获取验证码图片并弹出验证码输入界面。


三、程序架构

1. 主程序:GetBaiduCloudRealURL

  • 负责整个流程的控制和调用
  • 与HttpUtils类配合发送和接收请求

2. 辅助类:HttpUtils

  • 实现了GET、POST请求功能
  • 返回cookie、body等数据
  • 用于下载验证码图片

3. JSON解析类:Utils

  • 使用Gson库解析服务器返回的JSON数据

4. 参数拼接工具

通过类似curl的方式构造请求参数


三、代码功能解析

1. GetBaiduCloudRealURL类:

  • main方法:程序入口,接收参数
  • 获取初始cookie
  • 调用getBodyParams获取参数
  • 发送POST请求
  • 处理验证码输入
  • 解析dlink地址

2. HttpUtils类:

  • get方法:发送GET请求,返回cookie和body
  • saveImage方法:下载验证码图片
  • download方法:下载文件,支持进度显示
  • post方法:发送HTTP POST请求

四、使用流程示例

  • 执行命令:java -jar BaiduPanURL.jar https://pan.baidu.com/s/1eQrwbKY

  • 系统自动获取cookie

  • 发送POST请求到 /api/sharedownload

  • 服务器返回JSON数据,提取出真实下载链接

  • 根据配置决定是否下载文件


  • 五、依赖和工具

    • 第三方库: Gson(解析JSON)
    • 工具:FileOutputStream(文件输出流)
    • ** IDE**:Eclipse或IntelliJ IDEA

    六、常见问题解答

  • 程序下载速度慢?

    • 请检查网络连接
    • 建议使用Proxies设置或配置اطلributer
  • 验证码输入后下载失败?

    • 确保输入的验证码正确
    • 可以在程序日志中查看错误信息
  • Error Code:-20?

    • 意味着超出下载频率限制
    • 需要手动输入验证码

  • 结论

    本程序基于浏览器抓包技术,解析百度网盘的API接口,已成功获取大量资源的真实下载链接。如果需要获取更多技术攻略或有任何问题,请联系开发者。

    转载地址:http://qoqvz.baihongyu.com/

    你可能感兴趣的文章
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询数据库所有表的字段信息
    查看>>
    【Java基础】什么是面向对象?
    查看>>
    mysql 查询,正数降序排序,负数升序排序
    查看>>
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>
    mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
    查看>>