开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2966|回复: 42
收起左侧

[易源码分享] 蓝奏云目录解析

[复制链接]
结帖率:100% (4/4)
发表于 2024-1-20 21:02:10 | 显示全部楼层 |阅读模式   广西壮族自治区贵港市
分享源码
界面截图:
是否带模块: 调用了模块
备注说明: -
本帖最后由 HEZ小白 于 2024-1-20 21:04 编辑

模块调用:
精易模块
      类_json
鱼刺类.HTTP
      WinHttpR
      正则表达式

蓝奏云解析:
优化一些细节问题
优化目录所有文件解析时解析失败
增加文件名返回

蓝奏云解析_目录:
支持密码解析
支持301跳转
蓝奏云解析:
  
子程序名返回值类型公开备 注
蓝奏云解析文本型 
参数名类 型参考可空数组备 注
Url文本型
Pwd文本型
文件名文本型
变量名类 型静态数组备 注
HttpWinHttpR 
Return文本型 
正则正则表达式 
Header文本型 
Data文本型 
sign文本型 
websignkey文本型 
signs文本型 
Json类_json 
Origin文本型 
Host文本型 
文件名后缀文本型 
文件后缀文本型0
x整数型 
正确类型逻辑型 
源_Url文本型 
源_Url = Url
文件名后缀 = “doc,docx,zip,rar,apk,ipa,txt,exe,7z,e,z,ct,ke,cetrainer,db,tar,pdf,w3x,epub,mobi,azw,azw3,osk,osz,xpa,cpk,lua,jar,dmg,ppt,pptx,xls,xlsx,mp3,ipa,iso,img,gho,ttf,ttc,txf,dwg,bat,imazingapp,dll,crx,xapk,conf,deb,rp,rpm,rplib,mobileconfig,appimage,lolgezi,flac,cad,hwt,accdb,ce,xmind,enc,bds,bdi,ssf,it,pkg,cfg”
Http.Open (“GET”, Url, )
Http.SetRequestHeaders (“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
如果真 (Http.GetStatus () = 301)
Url = Http.GetResponseLocation ()
Http.Open (“GET”, Url, )
Http.SetRequestHeaders (“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
Return = Http.GetResponseText_old ()
正则.创建 (“”, , , )
正则.搜索全部 (Return)
文件名 = 正则.取子匹配文本 (1, 1)
如果真 (文件名 = “”)
正则.创建 (“(.*?)
, , , )
正则.搜索全部 (Return)
文件名 = 正则.取子匹配文本 (1, 2)

如果真 (文件名 ≠ “”)
正确类型 = 假
文件后缀 = 分割文本 (文件名后缀, “,”, )
计次循环首 (取数组成员数 (文件后缀), x)
' 调试输出 (文本_取右边 (文件名, “.”, , ))
如果真 (文件后缀 [x]文本_取右边 (文件名, “.”, , ))
正确类型 = 真
跳出循环 ()

计次循环尾 ()
如果真 (正确类型 = )
文件名 = “”


Origin = 文本_取左边 (Url, “/”文本_取右边 (Url, “/”, , ), , )
Host = 文本_替换 (Origin, , , , “https://”, “”, “http://”, “”, , , , , , )
如果 (寻找文本 (Return, “输入密码”, , ) ≠ -1)
如果真 (Pwd = “”)
返回 (“文件受密码保护,请输入密码”)
sign = 文本_取出中间文本 (Return, “skdklds = '”, “';”, , )
Data = “action=downprocess&sign=” + sign + “&p=” + Pwd
Http.Open (“POST”, Origin + “/ajaxm.php”, )
Header = “Accept: application/json, text/javascript, */*”#换行符“Content-Type: application/x-www-form-urlencoded”#换行符“Host: ” + Host + #换行符“Origin: ” + Origin + #换行符“Referer: ” + Url + #换行符“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”
Http.SetRequestHeaders (Header)
Http.Send (Data)
Return = Http.GetResponseText_old ()
正则.创建 (“src=”#引号“(.*?)”#引号, , , )
正则.搜索全部 (Return)
Url = 文本_取左边 (Url, “/”文本_取右边 (Url, “/”, , ), , ) + 正则.取子匹配文本 (2, 1)
Http.Open (“GET”, Url, )
Http.SetRequestHeaders (“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
Return = Http.GetResponseText_old ()
sign = 文本_取出中间文本 (Return, “sign':'”, “','”, , )
websignkey = 文本_取出中间文本 (Return, “aihidcms = '”, “';”, , )
signs = 文本_取出中间文本 (Return, “ajaxdata = '?”, “';”, , )
如果真 (signs = “” sign = “”)
判断循环首 (Return = “”)
Http.Open (“GET”, Url, )
Header = “Accept: application/json, text/javascript, */*”#换行符“Content-Type: application/x-www-form-urlencoded”#换行符“Referer: ” + 源_Url + #换行符“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”
Http.SetRequestHeaders (Header)
Http.Send ()
Return = Http.GetResponseText ()
Return = URLDecodeUtf8 (Return)
判断循环尾 ()
sign = 文本_取出中间文本 (Return, “sign':'”, “','”, , )
websignkey = 文本_取出中间文本 (Return, “aihidcms = '”, “';”, , )
signs = 文本_取出中间文本 (Return, “ajaxdata = '?”, “';”, , )
如果真 (sign = “” websignkey = “” signs = “” Url = Origin)
返回 (蓝奏云解析 (源_Url, , ))

Data = “action=downprocess&signs=%3F” + signs + “&sign=” + sign + “&websign=&websignkey=” + websignkey + “&ves=1”
Http.Open (“POST”, Origin + “/ajaxm.php”, )
Header = “Accept: application/json, text/javascript, */*”#换行符“Content-Type: application/x-www-form-urlencoded”#换行符“Host: ” + Host + #换行符“Origin: ” + Origin + #换行符“Referer: ” + Url + #换行符“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”
Http.SetRequestHeaders (Header)
Http.Send (Data)
Return = Http.GetResponseText_old ()
Json.解析 (Return, , )
如果真 (Json.取通用属性 (“zt”, )“1”)
返回 (Json.取通用属性 (“info”, ))

如果真 (文件名 = “”)
文件名 = Json.取通用属性 (“inf”, )

如果真 (到整数 (Json.取通用属性 (“zt”, )) = 0)
返回 (Json.取通用属性 (“inf”, ))
Http.Open (“GET”, Json.取通用属性 (“dom”, )“/file/” + Json.取通用属性 (“url”, ), )
Http.SetRequestHeaders (“Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6”)
Http.SetRequestHeaders (“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
如果真 (文件名 = “”)
文件名 = 文本_取右边 (Http.GetResponseLocation (), “fn=”, , )
返回 (Http.GetResponseLocation ())

蓝奏云解析_目录:
  
子程序名返回值类型公开备 注
蓝奏云解析_目录文本型 
参数名类 型参考可空数组备 注
Url文本型
Pwd文本型
变量名类 型静态数组备 注
HttpWinHttpR 
Return文本型 
x整数型 
提交数据文本型 
url_data文本型 
t文本型 
k文本型 
pg文本型 
Json类_json 
构建类_json 
结果文本型 
url_data = 文本_取出中间文本 (Url, “https://”, “/”, , )
如果真 (url_data = “”)
url_data = 文本_取出中间文本 (Url, “http://”, “/”, , )

Http.Open (“GET”, Url, )
Http.SetRequestHeaders (“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
如果真 (Http.GetStatus () = 301)
Url = Http.GetResponseLocation ()
Http.Open (“GET”, Url, )
Http.SetRequestHeaders (“User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send ()
Return = Http.GetResponseText ()
Return = URLDecodeUtf8 (Return)
提交数据 = 文本_取中间 (Return, “data : ”, “},”, , , , )“}”
提交数据 = 子文本替换 (提交数据, 字符 (10), “”, , , )
提交数据 = 子文本替换 (提交数据, 字符 (9), “”, , , )
t = 文本_取中间 (Return, 文本_取中间 (提交数据, “t':”, “,'”, , , , )“ = '”, “';”, , , , )
k = 文本_取中间 (Return, 文本_取中间 (提交数据, “k':”, “,'”, , , , )“ = '”, “';”, , , , )
pg = 文本_取中间 (Return, “pgs =”, “;”, , , , )
提交数据 = 文本_替换 (提交数据, , , , “pgs”, pg, 文本_取中间 (提交数据, “t':”, “,'”, , , , ), t, 文本_取中间 (提交数据, “k':”, “,'”, , , , ), k, “{ '”, “”, “':”, “=”)
提交数据 = 文本_替换 (提交数据, , , , “,'”, “&”, “'”, “”, “,}”, “”, , , , )
如果真 (寻找文本 (Return, “输入密码”, , ) ≠ -1)
如果真 (Pwd = “”)
返回 (“文件受密码保护,请输入密码”)
提交数据 = 提交数据 + “&ls=1&pwd=” + Pwd
Url = “https://” + url_data + “/filemoreajax.php”
Http.Open (“POST”, Url, )
Http.SetRequestHeaders (“Accept: application/json, text/javascript, */*”#换行符“Content-Type: application/x-www-form-urlencoded”#换行符“Referer: ” + Url + #换行符“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0”)
Http.Send (提交数据)
Return = Http.GetResponseText_old ()
Json.解析 (Return, , )
如果真 (Json.取通用属性 (“zt”, )“1”)
返回 (Json.取通用属性 (“info”, ))
构建.清除 ()
构建.置属性 (“['text']”, “[]”, )
计次循环首 (Json.成员数 (“text”), x)
构建.置属性 (“['text'][”到文本 (x - 1)“]”, “{}”, )
构建.置属性 (“['text']['”到文本 (x - 1)“']['icon']”, Json.取通用属性 (“text[”到文本 (x - 1)“].icon”, ), )
构建.置属性 (“['text']['”到文本 (x - 1)“']['Url']”, “https://” + url_data + “/” + Json.取通用属性 (“text[”到文本 (x - 1)“].id”, ), )
构建.置属性 (“['text']['”到文本 (x - 1)“”到文本 (x - 1)“']['name']”, Json.取通用属性 (“text[”到文本 (x - 1)“]['name_all']”, ), )
构建.置属性 (“['text']['”到文本 (x - 1)“']['size']”, Json.取通用属性 (“text[”到文本 (x - 1)“].size”, ), )
构建.置属性 (“['text']['”到文本 (x - 1)“']['time']”, Json.取通用属性 (“text[”到文本 (x - 1)“].time”, ), )
结果 = 蓝奏云解析 (“https://” + url_data + “/” + Json.取通用属性 (“text[”到文本 (x - 1)“].id”, ), , )
构建.置属性 (“['text']['”到文本 (x - 1)“']['parse_Url']”, 结果, )
计次循环尾 ()
返回 (构建.取数据文本 ())
蓝奏云解析.e (1.05 MB, 下载次数: 75)

评分

参与人数 3精币 +3 收起 理由
wa690602724 + 1 感谢分享,很给力!~
光影魔术 + 1 支持开源~!感谢分享
財財 + 1 感谢分享,很给力!~

查看全部评分


签到天数: 2 天

发表于 2024-6-19 00:57:33 高大上手机用户 | 显示全部楼层   宁夏回族自治区银川市
感谢分享
回复 支持 反对

使用道具 举报

发表于 2024-5-30 01:17:02 | 显示全部楼层   四川省内江市
谢谢分享
回复 支持 反对

使用道具 举报

结帖率:96% (27/28)

签到天数: 29 天

发表于 2024-5-17 23:23:30 | 显示全部楼层   福建省泉州市
张皓晨 发表于 2024-5-17 22:58
只能抓第一页的,50个文件以上就只能抓到50个文件了

有能力的大佬,可以自行优化
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2024-5-17 22:58:00 | 显示全部楼层   云南省*
BruceJoysky1987 发表于 2024-5-10 03:59
优化过的 ->
[e=0].版本 2

只能抓第一页的,50个文件以上就只能抓到50个文件了
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2024-5-17 08:01:06 | 显示全部楼层   江西省宜春市
学习了,谢谢
回复 支持 反对

使用道具 举报

结帖率:96% (27/28)

签到天数: 29 天

发表于 2024-5-10 03:59:51 | 显示全部楼层   福建省泉州市
BruceJoysky1987 发表于 2024-5-10 02:49
巧了,刚好有!
至于数据,你得自己抓

优化过的 ->
  
子程序名返回值类型公开备 注
蓝奏云_取文件夹_文件信息文本型 获取分享的链接中的所有文件夹并自动添加完整路径。
参数名类 型参考可空数组备 注
url文本型提供分享的链接
参_类型_数组文本型不填默认返回最新的文件类型;提供一个《文本型数组》接收返回的数据。
参_文件名_数组文本型不填默认返回最新的文件名;提供一个《文本型数组》接收返回的数据。
参_大小_数组文本型不填默认返回最新的文件大小;提供一个《文本型数组》接收返回的数据。
参_日期_数组文本型不填默认返回最新的文件上传日期;提供一个《文本型数组》接收返回的数据。
参_ID_数组文本型不填默认返回最新的文件ID;提供一个《文本型数组》接收返回的数据。
变量名类 型静态数组备 注
访问_源代码文本型取提交数据
访问_源代码_1文本型取文件名
post类_POST数据类 
post_协议头类_POST数据类 
json类_json 
局_正则正则表达式类 
fid文本型 
uid文本型 
t文本型 
k文本型 
提交协议头文本型 
数据_一级链接文本型 
数据_二级链接文本型 
局_计次整数型 
局_类型_数组文本型0
局_类型文本型 
局_ID_数组文本型0
局_ID文本型 
局_文件名_数组文本型0
局_文件名文本型 
局_大小_数组文本型0
局_大小文本型 
局_日期_数组文本型0
局_日期文本型 
post_协议头.添加 (“User-Agent”, “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0”, )
提交协议头 = post_协议头.获取协议头数据 ()
访问_源代码 = UTF8到文本 (穆丰_网页访问 (url, 0, , , , 提交协议头, , , , , , , , ))
fid = 穆丰_取出中间文本 (访问_源代码, “'fid':”, “,”, , )
uid = 穆丰_取出中间文本 (访问_源代码, “'uid':'”, “',”, , )
判断 (局_正则.创建 (“= '(.*?)';”, 访问_源代码, 假, 假, 真, ))
t = 局_正则.取子匹配文本 (1, 1, )
k = 局_正则.取子匹配文本 (2, 1, )



post.添加 (“lx”, “2”, )
post.添加 (“fid”, fid, )
post.添加 (“uid”, uid, )
post.添加 (“pg”, “1”, )
post.添加 (“rep”, “0”, )
post.添加 (“t”, t, )
post.添加 (“k”, k, )
post.添加 (“up”, “1”, )
post.添加 (“vip”, “1”, )
post.添加 (“webfoldersign”, “”, )
数据_一级链接 = 穆丰_取出中间文本 (url, “https://”, “/”, , )
数据_二级链接 = “https://” + 数据_一级链接 + 穆丰_取出中间文本 (访问_源代码, “url : '”, “',”, , )
访问_源代码_1 = UTF8到文本 (穆丰_网页访问 (数据_二级链接, 1, post.获取Post数据 (), , , 提交协议头, , , , , , , , ))
json.解析 (访问_源代码_1, , )
判断 (是否为空 (参_类型_数组))
局_类型 = “*.” + json.取通用属性 (“text[0].icon”, )
判断 (是否为空 (参_类型_数组))
计次循环首 (json.成员数 (“text”), 局_计次)
加入成员 (局_类型_数组, “https://” + 数据_一级链接 + “/” + json.取通用属性 (“text[”到文本 (局_计次 - 1)“].icon”, ))
计次循环尾 ()
参_类型_数组 = 局_类型_数组



判断 (是否为空 (参_ID_数组))
局_ID = “https://” + 数据_一级链接 + “/” + json.取通用属性 (“text[0].id”, )
判断 (是否为空 (参_ID_数组))
计次循环首 (json.成员数 (“text”), 局_计次)
加入成员 (局_ID_数组, “https://” + 数据_一级链接 + “/” + json.取通用属性 (“text[”到文本 (局_计次 - 1)“].id”, ))
计次循环尾 ()
参_ID_数组 = 局_ID_数组



判断 (是否为空 (参_文件名_数组))
局_文件名 = json.取通用属性 (“text[0]['name_all']”, )
判断 (是否为空 (参_文件名_数组))
计次循环首 (json.成员数 (“text”), 局_计次)
加入成员 (局_文件名_数组, json.取通用属性 (“text[”到文本 (局_计次 - 1)“]['name_all']”, ))
计次循环尾 ()
参_文件名_数组 = 局_文件名_数组



判断 (是否为空 (参_大小_数组))
局_大小 = json.取通用属性 (“text[0].size”, )
判断 (是否为空 (参_大小_数组))
计次循环首 (json.成员数 (“text”), 局_计次)
加入成员 (局_大小_数组, json.取通用属性 (“text[”到文本 (局_计次 - 1)“].size”, ))
计次循环尾 ()
参_大小_数组 = 局_大小_数组



判断 (是否为空 (参_日期_数组))
局_日期 = json.取通用属性 (“text[0].time”, )
判断 (是否为空 (参_日期_数组))
计次循环首 (json.成员数 (“text”), 局_计次)
加入成员 (局_日期_数组, json.取通用属性 (“text[”到文本 (局_计次 - 1)“].time”, ))
计次循环尾 ()
参_日期_数组 = 局_日期_数组



返回 (“文件类型:-> ” + 局_类型 + “ | 文件ID:-> ” + 局_ID + “ | 文件名称:-> ” + 局_文件名 + “ | 文件大小:-> ” + 局_大小 + “ | 上传日期: -> ” + 局_日期)

回复 支持 反对

使用道具 举报

结帖率:96% (27/28)

签到天数: 29 天

发表于 2024-5-10 02:51:20 | 显示全部楼层   福建省泉州市
BruceJoysky1987 发表于 2024-5-10 02:49
巧了,刚好有!
至于数据,你得自己抓

一些命令都是精易模块扣的,你可以自己用精易模块
回复 支持 反对

使用道具 举报

结帖率:96% (27/28)

签到天数: 29 天

发表于 2024-5-10 02:49:17 | 显示全部楼层   福建省泉州市
巧了,刚好有!
至于数据,你得自己抓
04662FDF5F482E675E77B2515C204496.png
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 5 天

发表于 2024-5-5 16:52:35 | 显示全部楼层   广东省韶关市
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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