吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3710|回复: 28
收起左侧

[Java 转载] 手把手分析蓝奏直链

[复制链接]
若无zz 发表于 2022-4-11 10:56
本帖最后由 若无zz 于 2022-4-11 14:01 编辑

不多哔哔 直接上图

演示链接: https://biaomian.lanzoum.com/iW9UAr43hij

1.打开网站

1.jpg

2.在下载按钮点击右键 选择 [检查] 选项

2.jpg

在控制台可以看到,下载按钮其实是来自于iframe (不懂自己百度,还不行就google)
也就是说获取到iframe中的src,就可以根据拼凑出一个新的url(图示标记2)
打开新的url就可以获取到下载按钮对应的文件下载链接(图示3标记)

3.接下来分析上图示2的新url页面源码

打开url 空白处点击右键 选查看源码

3.jpg

得到以下图示

4.jpg

代码分析得知,打开新的url后会向蓝奏后台异步请求获取到下载地址

4.分析异步请求

在打开新url的页面 任意位置点击右键,选中[检查]选项,会打开控制台
5.jpg
控制台不在下边的  可以按右边的方式调整位置 (不调也行!!!!!别纠结在哪里)

6.jpg

点击左边的Network 查看网络请求 (这时候是空白的......别问为什么是空白的,就是空白的) F5刷新页面
这时候 注意了 !!!!!!!
页面上显示  [地址超时,请刷新]  不要慌~~ 不要慌!!!!
从头再来吧....手脚麻利点...用处你单身二三十年的手速操作.....

5.继续哔哔 分析异步请求后台的接口

页面刷新后,可以看到异步请求了https://biaomian.lanzoum.com/ajaxm.php 接口

分析接口信息 是以POST请求发送form表单的形式进行异步请求

8.jpg

异步请求响应结果是Json数据

在第3步的源码分析得知 将异步请求响应结果中的dom和url拼凑起来就是一个下载地址

10.jpg

11.jpg

最后一步了 分析下载地址

>将拼凑的下载地址 丢到有控制台的页面去访问
>在控制台点击Doc过滤请求,可以找到下载地址的网络请求记录
>分析可以看到请求状态码是 302
>302代表着需要重定向
>找到下载地址响应的header信息里面的location (不要问为什么是location 自己百度去)
>location的值就是真实下载地址
>location的值就是真实下载地址
>location的值就是真实下载地址
>拿这个地址就可以用代码直接下载文件到电脑中(用途自由发挥,本人概不负责)
12.jpg

Java示例

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.3</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.22</version>
        </dependency>
            String html = HttpUtil.get("http://xxxxxxxxxxxxxxxxxxxxx");
            Document doc = Jsoup.parse(html);
            Elements iframe = doc.getElementsByTag("iframe");
            if (iframe.size() == 0) {
                Console.log("没有iframe");
                return R.failed();
            }
            String src = iframe.get(0).attr("src");

            URL url2 = URLUtil.url(url);

            String url3 = url2.getProtocol() + "://" + url2.getHost() + src;
            html = HttpUtil.get(url3);
            doc = Jsoup.parse(html);
            Elements scripts = doc.getElementsByTag("script");
            Element script = scripts.get(scripts.size() - 1);

            String s1 = script.html().split("data :")[1];
            s1 = s1.replaceAll("\n", "")
                    .replaceAll("\r", "")
                    .replaceAll("\t", "")
                    .replaceAll(",//", "")
                    .replaceAll("'signs':ajaxdata", "'signs':'?ctdf'")
                    .replaceAll("'websign':websign", "'websign':'websign'")
                    .replaceAll("'websignkey':websignkey", "'websignkey':'kHQR'")
                    .replaceAll("'", "\"");
            JSONObject formData = JSONObject.parseObject(s1);

            String body = HttpRequest.post(url2.getProtocol() + "://" + url2.getHost() + "/ajaxm.php").form(formData)
                    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                    .header("Accept-Encoding", "gzip, deflate, br")
                    .header("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2")
                    .header("Upgrade-Insecure-Requests", "1")
                    .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36")
                    .header("sec-fetch-dest", "empty")
                    .header("sec-fetch-mode", "cors")
                    .header("sec-fetch-site", "same-origin")
                    .header("referer", url3)
                    .header("x-requested-with", "XMLHttpRequest")
                    .execute()
                    .body();

            JSONObject jsonObject = JSONObject.parseObject(body);
            String dom = jsonObject.getString("dom");
            String url1 = jsonObject.getString("url");
            String downloadUrl = dom + "/file/" + url1;
            HttpResponse execute = HttpRequest.get(downloadUrl)
                    .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
                    .header("Accept-Encoding", "gzip, deflate, br")
                    .header("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2")
                    .header("Host", dom.replace("https://", ""))
                    .header("Upgrade-Insecure-Requests", "1")
                    .header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36")
                    .execute();

            location = execute.header("location");

免费评分

参与人数 12吾爱币 +26 热心值 +11 收起 理由
Milesday + 1 + 1 谢谢@Thanks!
tianbosong + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xuejiqiao + 1 + 1 谢谢@Thanks!
wushaominkk + 8 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ss110011aa + 1 + 1 我以为我能看懂
zswlhw + 1 + 1 我很赞同!
xb0wxh + 1 + 1 谢谢@Thanks!
Cool_Breeze + 2 + 1 谢谢@Thanks!
cjcmxc + 1 + 1 热心回复!
醉初. + 1 + 1 用心讨论,共获提升!
nuonuo2015 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

秋风君 发表于 2022-4-11 11:01
感谢分享。头像写的很白,哦不,教程写的很详细。
 楼主| 若无zz 发表于 2022-4-12 00:18
32K 发表于 2022-4-11 16:38
弱弱地问一句:既然已经到了那个下载网页了,都到了那一步了,犯不上这么麻烦吧,,,,,一般要和谐的话, ...

因为真实下载地址是中下载页面异步获取的,用程序获取时,一般不执行js代码,所以也不能直接获取到下载地址
李佑辰 发表于 2022-4-11 10:57
你发的图我一张都看不清 可能是我没戴眼镜 晚点在来看看
 楼主| 若无zz 发表于 2022-4-11 11:04
snxcx123 发表于 2022-4-11 11:01
感谢分享。头像写的很白,哦不,教程写的很详细。

排版挺长挺白的
头像被屏蔽
mokson 发表于 2022-4-11 11:08
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 若无zz 发表于 2022-4-11 11:09
mokson 发表于 2022-4-11 11:08
什么浏览器,我的找不到检查。

我用chrome    没有就按F12
三滑稽甲苯 发表于 2022-4-11 12:22
mokson 发表于 2022-4-11 11:08
什么浏览器,我的找不到检查。

绝大部分电脑浏览器都有吧
有的f12按不出来可以试试看 ctrl+shift+I
YukinoshitaKa 发表于 2022-4-11 12:45
这帖子实在是太香了
落红护花 发表于 2022-4-11 13:21
YukinoshitaKa 发表于 2022-4-11 12:45
这帖子实在是太香了

是头像太香了

咳,不对,帖子很好,有时间写个工具直接获取,不过接口会变吧
 楼主| 若无zz 发表于 2022-4-11 13:38
落红护花 发表于 2022-4-11 13:21
是头像太香了

咳,不对,帖子很好,有时间写个工具直接获取,不过接口会变吧

1年前自己做的解析API   好像没发现有变化.......
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:40

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表