微云解析源码_后续,微云直链解析源码记录
昨日已经完成需求了,今早起来发现失效了,看了下是Cookie失效了,还得重新获取Cookie岂不是很麻烦?
今天通过分享链接进行解析。
https://share.weiyun.com/GEk7EnGr
F12看下请求
有下载地址的请求出现,试着像昨天一样在网页代码中找。
结果是无,那么应该就是JS跳转或者响应得到的地址。慢慢分析请求。终于在这个链接的响应中有所发现。
https://share.weiyun.com/webapp/json/weiyunShare/WeiyunSharePartDownload?refer=firefox_windows&g_tk=674008136&r=0.8535684019613796
我以为就这么简单了,看了下,我懵了。
我不太清楚怎么构建,也觉得麻烦,这里我能看见fild_id等文件信息关键词,昨日的是设定好的,今天从分享链接解析,当然需要自动获取这些信息咯,继续向上分析请求。最终在这条链接中有所发现。
https://share.weiyun.com/webapp/json/weiyunShare/WeiyunShareView?refer=firefox_windows&g_tk=674008136&r=0.046144312826791656
经过测试,Cookie中的wyctoken最重要的,并且要与链接中的g_tk参数相同。
看一下请求
分析发现,req_header中的sep和share_key会发生变化,其余可固定,这里我偷懒的,这么多参数,懒得输,直接复制。
$data = '{"req_header":"{\"seq\":'.time().',\"type\":1,\"cmd\":12002,\"appid\":30113,\"version\":3,\"major_version\":3,\"minor_version\":3,\"fix_version\":3,\"wx_openid\":\"\",\"user_flag\":0}","req_body":"{\"ReqMsg_body\":{\"ext_req_head\":{\"token_info\":{\"token_type\":0,\"login_key_type\":1,\"login_key_value\":\"\"},\"language_info\":{\"language_type\":2052}},\".weiyun.WeiyunShareViewMsgReq_body\":{\"share_pwd\":null,\"share_key\":\"'.$share_key.'\"}}}"}';
测试成功。
https://share.weiyun.com/webapp/json/weiyunShareNoLogin/WeiyunSharePartDownload?refer=firefox_windows&g_tk=1532617210&r=0.07883033651613147
上面这条请求我也这么弄,搞了好久,就是用户信息失效。我一直怀疑是data的问题,但是太多转义字符了,分析不出来。与上面不同在于
\\\在php输出只有\\,不知道怎么处理,只有自己构建了。
{"req_header":"{\"seq\":15992058372945316,\"type\":1,\"cmd\":12023,\"appid\":30113,\"version\":3,\"major_version\":3,\"minor_version\":3,\"fix_version\":3,\"wx_openid\":\"\",\"user_flag\":0,\"device_info\":\"{\\\"browser\\\":\\\"firefox\\\"}\"}","req_body":"{\"ReqMsg_body\":{\"ext_req_head\":{\"token_info\":{\"token_type\":0,\"login_key_type\":1,\"login_key_value\":\"\"},\"language_info\":{\"language_type\":2052}},\".weiyun.WeiyunSharePartDownloadMsgReq_body\":{\"os_info\":\"windows\",\"browser\":\"firefox\",\"share_key\":\"GEk7EnGr\",\"pwd\":\"\",\"download_type\":20,\"file_list\":[{\"pdir_key\":\"7a58cd00a3e4f9c3880ff3a29ee8f25a\",\"file_id\":\"da3862c4-e722-47e8-be9b-977534dfe771\",\"filename\":\"090302.mp4\",\"file_size\":5487894153}]}}}"}
我用在线网站解析的。
里面肯定也是JSON encode的,不能直接再解析,复制里面的解析
网上找了个json转php数组的在线网站,效果相当好
https://qqe2.com/json/json2phparray
这样写成数组,分别json_encode,然后再放到第一层,再json_encode一次,就是最终的$data了。这样POST需要把header这样设置
Content-Type:application/json
将链接对应的文件信息存到数据库,避免第二次访问再获取。调用方式:域名/文件名.php?url=微云链接只对文件为mp4等视频有效。最终效果:
附上源码:
<?php //ini_set("display_errors","On");$mysqli = new mysqli('localhost', '', '', '');$mysqli->query("SET NAMES utf8");if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);}$geturl = $_GET['url'];$share_key1 = explode("weiyun.com/",$geturl);$share_key = $share_key1[1];$sql="SELECT * FROM `IK_urldata` WHERE `share_key` = '$share_key'";$query=$mysqli->query($sql)->num_rows;if($query> 0){ $jxurl = get_download_url($share_key); echo $jxurl;}else{ $jxurl = get_value($share_key); echo $jxurl;}function http_post($url,$headers,$data){ $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); //curl_setopt($ch, CURLOPT_HEADER, true); //返回response头部信息 curl_setopt($ch, CURLINFO_HEADER_OUT, true); //TRUE 时追踪句柄的请求字符串,从 PHP 5.1.3 开始可用。这个很关键,就是允许你查看请求header curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); //curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $sResult = curl_exec($ch); if($sError=curl_error($ch)){ die($sError); } curl_close($ch); return $sResult;}function get_value($share_key){$code = '';for ($i=0;$i<9;$i++) { //通过循环指定长度 $randcode = mt_rand(0,9); //指定为数字 $code .= $randcode;}$cookie = 'wyctoken='.$code.'; FTN5K=[object Object]';$header = array('User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36','cookie:'.$cookie,'Content-Type:application/json');$url = 'https://share.weiyun.com/webapp/json/weiyunShareNoLogin/WeiyunShareView?refer=firefox_windows&g_tk='.$code.'&r=0.9378336906117634';$data = '{"req_header":"{\"seq\":'.time().',\"type\":1,\"cmd\":12002,\"appid\":30113,\"version\":3,\"major_version\":3,\"minor_version\":3,\"fix_version\":3,\"wx_openid\":\"\",\"user_flag\":0}","req_body":"{\"ReqMsg_body\":{\"ext_req_head\":{\"token_info\":{\"token_type\":0,\"login_key_type\":1,\"login_key_value\":\"\"},\"language_info\":{\"language_type\":2052}},\".weiyun.WeiyunShareViewMsgReq_body\":{\"share_pwd\":null,\"share_key\":\"'.$share_key.'\"}}}"}';$res=http_post($url,$header,$data);$res2 = json_decode($res,true);$resbody = $res2['data']['rsp_body']['RspMsg_body']['file_list'][0];$file_id = $resbody['file_id'];$file_name = $resbody['file_name'];$file_size = $resbody['file_size'];$pdir_key = $resbody['pdir_key'];$mysqli = new mysqli('localhost', 'sql_154_8_157_22', 'tXEY3NSCXcfkR8wL', 'sql_154_8_157_22');$mysqli->query("SET NAMES utf8");$sql="INSERT INTO `IK_urldata` (`id`, `share_key`, `file_id`, `file_name`, `file_size`, `pdir_key`) VALUES ('', '$share_key', '$file_id', '$file_name', '$file_size', '$pdir_key')";$query=$mysqli->query($sql);if($query){ return get_download_url($share_key);} }function get_download_url($share_key){$code = '';for ($i=0;$i<9;$i++) { //通过循环指定长度 $randcode = mt_rand(0,9); //指定为数字 $code .= $randcode;} $mysqli = new mysqli('localhost', 'sql_154_8_157_22', 'tXEY3NSCXcfkR8wL', 'sql_154_8_157_22');$mysqli->query("SET NAMES utf8");$sql="SELECT * FROM `IK_urldata` WHERE `share_key` = '$share_key'";$query=$mysqli->query($sql)->fetch_assoc();$file_id = $query['file_id'];$file_name = $query['file_name'];$file_size = $query['file_size'];$pdir_key = $query['pdir_key'];$url2 = 'https://share.weiyun.com/'.$share_key;$cookie = 'wyctoken='.$code.';';$header = array('User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36','Cookie:'.$cookie,'Content-Type:application/json','Accept: application/json, text/plain, */*');$a=[ 'seq' => time(), 'type' => 1, 'cmd' => 12023, 'appid' => 30113, 'version' => 3, 'major_version' => 3, 'minor_version' => 3, 'fix_version' => 3, 'wx_openid' => '', 'user_flag' => 0, 'device_info' => '{"browser":"firefox"}',];$b=[ 'ReqMsg_body' => [ 'ext_req_head' => [ 'token_info' => [ 'token_type' => 0, 'login_key_type' => 1, 'login_key_value' => '', ], 'language_info' => [ 'language_type' => 2052, ], ], '.weiyun.WeiyunSharePartDownloadMsgReq_body' => [ 'os_info' => 'windows', 'browser' => 'firefox', 'share_key' => $share_key, 'pwd' => '', 'download_type' => 20, 'file_list' => [ [ 'pdir_key' => $pdir_key, 'file_id' => $file_id, 'filename' => $file_name, 'file_size' => $file_size, ], ], ], ],];$codea = json_encode($a,true);$codeb = json_encode($b,true);$c=[ 'req_header' => $codea, 'req_body' => $codeb,];$data = json_encode($c); $url = 'https://share.weiyun.com/webapp/json/weiyunShareNoLogin/WeiyunSharePartDownload?refer=firefox_windows&g_tk='.$code.'&r=0.3463884447034302'; $res=http_post($url,$header,$data); $res2 = json_decode($res,true); $resbody = $res2['data']['rsp_body']['RspMsg_body']['download_url']; $durl= explode("?fname",$resbody); $doload_url = $durl[0]; return $doload_url;}?>
微云解析源码_后续,微云直链解析源码记录相关推荐
- 优酷视频怎么转二维码_优酷视频转二维码
有的人想将自己制作的视频分享出去,那么该如何将视频转换成二维码来分享呢?其实方法很简单,直接在视频界面中就能生成,这里和大家讲讲. 01. 登录自己的优酷帐号,然后点击右上角的上传按钮. 优酷视频怎么 ...
- 一个完整的网上商城的源码_黄冈微信分销商城系统-源码码网
5.资金管理,商城中产生的每一笔订单会员购物分销系统中都会有详细的记录,然后以数据报表的形式呈现在商家的眼前,通过报表,商城的营业情况一目了然.商家在系统后台可以随时查看商城的财务数据和顾客的消费情况 ...
- Java线程池状态判断源码_深入浅出Java线程池:源码篇
前言 在上一篇文章深入浅出Java线程池:理论篇中,已经介绍了什么是线程池以及基本的使用.(本来写作的思路是使用篇,但经网友建议后,感觉改为理论篇会更加合适).本文则深入线程池的源码,主要是介绍Thr ...
- 云原生的本质_什么是云原生?云原生和传统软件有什么区别?有什么特征
云原生 很多人都会问"到底什么是云原生?"."云原生和传统软件有什么区别?". 背景 顾名思义,云原生应用即专门为在云平台部署和运行而设计的应用.云原生能够以可 ...
- 支持python的云虚拟主机价格_万网云虚拟主机密码怎么样,python 购买虚拟主机测评...
[腾讯云] 点击进入 高性能云服务器1核2G首年99元 [华为云]点击进入 2核4G5M企业级云主机707元/年 香港免备案主机129/年 [阿里云]点击进入 云服务器低至0.95折 1核2G EC ...
- 生成有时间限制的二维码_微信公众号渠道二维码怎么制作?监测渠道效果的利器来了...
每逢营销节点,各种渠道推广少不了,非常时刻需要能够统计不同渠道二维码的数据情况. 微信引流效果好不好怎么判断?新增人数为什么一团乱麻?粉丝又分别是从哪个渠道来的? 用渠道二维码就能搞定这些问题. 一. ...
- 小样本点云深度学习库_基于点云深度学习的点云数据集制作系统及方法与流程...
本发明涉及测控技术领域,尤其涉及一种基于点云深度学习的点云数据集制作系统及方法. 背景技术: 深度学习网络模型一般都是基于64线单帧激光数据集进行.但64线激光器和单帧的限定,造成了工程应用中点云数据 ...
- python制作二维码_基于Python生成个性二维码过程详解
一.问题描述 通过调用MyQR模块来实现生成个人所需二维码. 安装: pip install myqr 二.代码实现 1.普通二维码 from MyQR import myqr # 普通二维码 myq ...
- python输出字符的ascii码_如何获取一个字符的ASCII码
如何获取一个字符的ASCII码 Python内置ord函数 用来将字符转化成ASCII码 用法为: print('字符0 的ASCII码表示为',ord('0')) 结果为: 字符0 的ASCII码表 ...
- GOOGLE ADSENSE广告联盟收不到PIN码_快速表单身份验证PIN码方法
在自己的网站或者博客上投放Google Adsense广告是目前很多站长不错的赚钱途径.尤其是Google Adsense不仅单价高.而且信誉好.支付稳定等天然优势让国内众多广告联盟黯然失色.在流量有 ...
最新文章
- 什么是ECS以及如何使用登陆
- [转]pthread用于进程间通信
- python编程入门指南怎么样-如果想学python怎么入门?
- 按类别组织的Python主要内置对象类型
- 041_CSS3文本效果
- 以A表中的值快速更新B表中记录的方法
- 单调栈 leetcode整理(三)
- [转]python进阶到高阶大全
- rant c语言头文件,用CGIC库来开发CGI程序
- .NET中的Lambda表达式与匿名方法
- 关于axure 8在发布的时候显示:Unable to connect to Axure Share.的问题
- java银行叫号_银行排队叫号系统
- 阿古斯机器人_燃烧王座:暗牧神器新语音暗示虚空之力
- CS224W-图神经网络 笔记5.3:Spectral Clustering - 谱图聚类的具体操作步骤
- tiktok直播代运营关注要素
- 服务器网卡驱动_教你星际蜗牛C款i211网卡服务器咋装Windows sevs2012R2服务器下
- java+vue的二维码生成,二维码上传服务器,二维码的压缩包下载
- win7如何进入计算机配置,教您win7怎么进入设置bios
- 使用CloudCompare渲染好看的油麦菜点云的小方法
- bpm,bpm千万里我找的就是你!!
热门文章
- 林轩田《机器学习基石》(十一)—— Linear models for classification
- 大衣哥家的小伟和亚楠还能走多久?
- 注意力机制-CA注意力-Coordinate attention
- sqli-labs闯关指南 1—10
- Fbank特征与MFCC特征解析
- winform 监控 控制台 输出_海南指挥中心控制台公司-精诚创信
- 使用Kieker(AspectJ)监控控制台程序
- 360加固签名验证_android - 使用360加固的方法(需要在windows下面,先加固,再签名)...
- 洛阳出发自驾不到半天就能看“海”!人少景美路途近!
- XML 大于号 小于号 处理