获取蓝奏云有密码和无密码分享的直连地址

By admin at 14 天前 • 0人收藏 • 104人看过

感谢:xauto 分享代码

image.png

import web.json;
import string.html;
import web.rest.client;

namespace lanzou;

class client {
    ctor(...) {
        this = ..web.rest.client(...);
        this.addHeaders = {
            ["origin"] = "https://www.lanzous.com";
            ["Accept-Language"] = "zh-CN,zh;q=0.8";
            ["user-agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36 Edg/79.0.309.51";
        }
    };

    getUrl = function(url, pwd = "") {
        var data;
        this.parseResponseResult = λ(s)..string.html(s);
        // 请求下载页面 
        var htmlDoc = this.get(url)
        if (!# pwd) {
            // 先拿到iframe地址
            var iframe = htmlDoc.queryEles(tagName = "iframe");
            var url = "https://www.lanzoux.com" + iframe[1].src;
            // 获取 ajax 请求 data
            var html = this.get(url)
            var script = html.queryEles(tagName = "script");
            var txt = script[2][1].text;
            data = ..web.json.parse(..string.match(txt, "<^\/>data\s\:\s(%{})"));
        } else {
            //获取 ajax 请求 sign
            var script = htmlDoc.queryEles(tagName = "script");
            var txt = script[3][1].text;
            var sign = ..string.match(txt, "sign\=(.+)\&");
            // 自己构造 ajax 请求 data
            data = { action = "downprocess"; sign = sign; p = pwd };
        }
        // 请求 ajax 获取跳转地址
        this.parseResponseResult = λ(s)..web.json.parse(s);
        var ajax = this.post("https://www.lanzous.com/ajaxm.php", data)
        var url = ajax.dom + '/file/' + ajax.url

        // 请求跳转地址获取302重定向地址
        this.parseResponseResult = λ() this._http.location();
        return this.get(url)
    }
}

//测试代码
(function(){
    import console;
    console.setTitle("Lanzou client test!");
    
    var nopl = "https://www.lanzoux.com/iRwihgmkl0j";
    var purl = "https://www.lanzoux.com/i2XAqgmkl1a"
    var pwd = "AArdio";
    
    var lanzou = client()
    
    console.printf('无密码分享链接:\n%s\n', lanzou.getUrl(nopl))
    console.printf('有密码分享链接:\n%s', lanzou.getUrl(purl, pwd))
    
    console.pause(true);
})()


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
Sciter中文在线文档Sciter在线学习文档
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
C大Aardio论坛:Aar爱好者论坛
简码教程网:简码编程
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...