php分析抓取视频网站视频链接与截图[zz]

    技术2022-05-18  32

     

    php分析抓取视频网站视频链接与截图[zz]

       最近在开发视频收藏功能时候,需要根据视频网站如优酷、酷6、土豆网的一个视频链接,能自动获取该视频的真实链接和相对应视频的截图。类似与校内的分享视频的功能~~~~   下面以优酷为例:   假设我们给任意一个优酷视频网址:http://v.youku.com/v_show/id_XMTA0NTM2MzI4.html   要注意一点:优酷网上的视频地址较早些的是:http://v.youku.com/v_show/id_XNTM3MDg2ODA=.html   注意上面的一点点区别,最后有个“=”。   通过分析优酷视频网站的页面内容特点,利用php结合正则表达式,过滤获取我们想要的信息。具体参见下面功能函数。   //优酷视频地址,如http://v.youku.com/v_show/id_XMTA0NTM2MzI4.html   $link = ’http://v.youku.com/v_show/id_XMTA0NTM2MzI4.html‘;   $host = 'youku.com';   function getVideoInfo($link, $host) {   $return = array();   if('youku.com' == $host) {   //分析视频网址,获取视频编码号   preg_match_all("/id/_(/w+)[/=|.html]/", $link, $matches);   if(!empty($matches[1][0])) {   $return['flashvar'] = $matches[1][0];   }   //获取视频页面内容,存与$text中   $text=file_get_contents($link);   //获取视频标题   preg_match("/<title>(.*?) - (.*)<//title>/", $text, $title);   //获取优酷网上某一视频对应的视频截图,经分析,视频的截图的图片地址在该视频页面html代码里以<li class="download"></li>标记里的最后一个http://vimg....   例如http://vimg20.yoqoo.com/0100641F4649B9D27344B00131 FBB6AFDF5175-7D35-930B-E43C-99C59F918E00   preg_match_all("/<li class=/"download/"(.*)<//li>/",$text,$match2);   preg_match("/http:vimg(.*)/|/"/>/",$match2[1][0 ],$imageurl);   if (!empty($imageurl[1])) {   $return['imageurl'] = 'http://vimg'.$imageurl[1];   }   if (!empty($title)) {   $return['title'] = $title[1];   }   } elseif('ku6.com' == $host) {   // http://v.ku6.com/show/bjbJKPEex097wVtC.html   // http://v.ku6.com/special/index_3628020.html   //对于酷6网,末尾以index_开头的地址需要另外分析其视频编码   $text=file_get_contents($link);   preg_match_all("///([/w/-]+)/.html/", $link, $matches);   if(1 > preg_match("///index_([/w/-]+)/.html/", $link) && !empty($matches[1][0])) {   $return['flashvar'] = $matches[1][0];   }else{   preg_match_all("/refer//(.*)//v.swf/",$text,$video url);   $return['flashvar'] = $videourl[1][0];   }   preg_match("/<title>(.*?) - (.*)<//title>/", $text, $title);   //经分析,酷六的视频截图地址在视频页面的<span class="s_pic“></span>标签之间   preg_match_all("/<span class=/"s_pic/">(.*)<//span>/",$text,$imageurl);   if (!empty($imageurl[1][0])) {   $return['imageurl'] = $imageurl[1][0];   }   if (!empty($title)) {   $return['title'] = $title[1];   }   }elseif ('tudou.com' == $host){   //http://www.tudou.com/programs/view/_ke1lzCnBYw/   $tudou = file_get_contents($link);   preg_match_all("/view//([/w/-]+)///", $link, $matches);   if(!empty($matches[1][0])) {   $return['flashvar'] = $matches[1][0];   }   preg_match("/<title>(.*?) - (.*)<//title>/", $tudou, $title);   preg_match_all("/<span class=/"s_pic/">(.*)<//span>/",$tudou,$imageurl);   if (!empty($imageurl[1][0])) {   $return['imageurl'] = $imageurl[1][0];   }   if (!empty($title)) {   $return['title'] = $title[1];   }   }   return $return;   }


    最新回复(0)