分享

奇艺(奇艺果)的解析源码

 黄三岁大爱人生 2018-09-15
in 技术文章 read (636) 文章转载请注明来源!

奇艺的解析源码,此源码为老版本的源码,但是还是可以使用~!可以自己加缓存哦~!嘿嘿就行号非常耗自己服务请求带宽,这个就需要各位兄弟怎么去设置~!很简单修改里面的某个参数即可~!

更多源码请关注QQ群:516722628

  • <?php
  • define('NAME_PATH', 'data/name/'); //文件名称的目录
  • define('COOKIE_IQIYI','P00001=');
  • header('Pragma:no-cache');
  • header("Expires:-1");
  • $url = $_GET['url'];
  • $html = file_get_contents($url);
  • //preg_match('##',$html,$bool);
  • preg_match('#\"tvId\":(.*?),#',$html,$tvid);
  • preg_match('#\"vid\":\"(.*?)\",#',$html,$vids);
  • $member = '';//是否为付费视频
  • $vid = $vids[1];
  • $tvid = $tvid[1];
  • $t = time()*1000;
  • $src = "76f90cbd92f94a2e925d83e8ccd22cb7";
  • $key = "d5fb4bd9d50c4be6948c97edd7254b0e";
  • $sc = md5($t.$key.$vid);
  • $url = "http://cache.m.iqiyi.com/jp/tmts/$tvid/$vid/?t=$t&sc=$sc&src=$src";
  • $content = curl($url,COOKIE_IQIYI);
  • $content = preg_replace("#var tvInfoJs=#","",$content);
  • $json = json_decode($content,true);
  • $data = $json['data'];
  • $vidl = $data['vidl'];
  • foreach($vidl as $key => $value){
  • $type = $value['vd'];
  • if($type==14||$type==17||$type==21||$type==1||$type==96){//过滤 H265(m3u8不支持h265编码格式)和低画质视频(流畅 标清)
  • continue;
  • }
  • $m3u = $value['m3u'];
  • }
  • $url = $m3u;
  • function is_ipad() {
  • $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']); //获取浏览器信息
  • preg_match("#(ipad|iphone|mac|ios|linux|android|ipod)#", $user_agent, $bool);
  • $isiPad = empty($bool[1]) ? false : true; //是否为移动端
  • return $isiPad;
  • }
  • function curl($url, $cookie = "") {
  • $params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
  • $params["ip"] = "14.21.98.117";//伪装为固定IP,否则会报异地登录,会封号,不要更改
  • $params["cookie"] = $cookie;
  • $params["ref"] = "https://www.iqiyi.com";
  • //$params["proxy"] = PROXY;
  • return iqiyi_curl($url,$params);
  • }
  • function iqiyi_curl($url, $params = array()) {
  • $ip = empty($params["ip"]) ? rand_ip() : $params["ip"];
  • $header = array('X-FORWARDED-FOR:'.$ip,'CLIENT-IP:'.$ip);
  • if(isset($params["httpheader"])){
  • $header = array_merge($header,$params["httpheader"]);
  • }
  • $referer = empty($params["ref"]) ? $url : $params["ref"];
  • $user_agent = empty($params["ua"]) ? $_SERVER['HTTP_USER_AGENT'] : $params["ua"] ;
  • $ch = curl_init(); //初始化 curl
  • curl_setopt($ch, CURLOPT_URL, $url); //要访问网页 URL 地址
  • curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //伪装来源 IP 地址
  • curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装网页来源 URL
  • curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息
  • curl_setopt($ch, CURLOPT_NOBODY, false); //设定是否输出页面内容
  • curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出到屏幕上
  • curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, false); //连接超时时间,设置为 0,则无限等待
  • curl_setopt($ch, CURLOPT_TIMEOUT, 3600); //数据传输的最大允许时间超时,设为一小时
  • curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //HTTP验证方法
  • curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不检查 SSL 证书来源
  • curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不检查 证书中 SSL 加密算法是否存在
  • curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //跟踪爬取重定向页面
  • curl_setopt($ch, CURLOPT_AUTOREFERER, true); //当Location:重定向时,自动设置header中的Referer:信息
  • curl_setopt($ch, CURLOPT_ENCODING, ''); //解决网页乱码问题
  • curl_setopt($ch, CURLOPT_HEADER, empty($params["header"])?false:true); //不返回 header 部分
  • if(!empty($params["fields"])){
  • curl_setopt($ch, CURLOPT_POST, true); //设置为 POST
  • curl_setopt($ch, CURLOPT_POSTFIELDS,$params["fields"]); //提交数据
  • }
  • if(!empty($params["cookie"])){
  • curl_setopt($ch, CURLOPT_COOKIE, $params["cookie"]); //从字符串传参来提交cookies
  • }
  • if(!empty($params["proxy"])){
  • curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式
  • curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式
  • curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
  • curl_setopt($ch, CURLOPT_PROXY, "58.251.230.220:9797"); //代理服务器地址 host:post的格式
  • if(!empty($params["proxy_userpwd"])){
  • curl_setopt($ch, CURLOPT_PROXYUSERPWD, $params["proxy_userpwd"]); //http代理认证账号,username:password的格式
  • }
  • }
  • $data = curl_exec($ch); //运行 curl,请求网页并返回结果
  • curl_close($ch); //关闭 curl
  • return $data;
  • }
  • function rand_ip() {
  • $ip_long = array(array('607649792', '608174079'), //36.56.0.0-36.63.255.255
  • array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
  • array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
  • array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
  • array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
  • array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
  • array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
  • array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
  • array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
  • array('-569376768', '-564133889') //222.16.0.0-222.95.255.255
  • );
  • $rand_key = mt_rand(0, 9);
  • $ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
  • return $ip;
  • }
  • $wap = preg_match("/(iPhone|iPad|iPod|Linux|Android)/i", strtoupper($_SERVER['HTTP_USER_AGENT']));
  • if($wap){
  • $datainfo['success'] = '1';
  • $datainfo['type'] = '';
  • $datainfo['play'] = 'h5mp4';
  • $datainfo['url'] = $url;
  • }else{
  • $datainfo['success'] = '1';
  • $datainfo['type'] = '';
  • $datainfo['play'] = 'hls';
  • $datainfo['url'] = $url;
  • }
  • $json_data=json_encode($datainfo);
  • echo $json_data;
  • ?>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约