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

本文介绍如何使用PHP和正则表达式从优酷、酷6和土豆网等视频平台的链接中提取视频的真实播放地址和截图URL。通过分析各平台网页结构,实现了自动抓取所需信息的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发视频收藏功能时候,需要根据视频网站如优酷、酷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代码里以<liclass="download"></li>标记里的最后一个 http://vimg....
例如 http://vimg20.yoqoo.com/0100641F4649B9D27344B00131FBB6AFDF5175-7D35-930B-E43C-99C59F918E00
    preg_match_all("/<liclass="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,$videourl);
      $return['flashvar']= $videourl[1][0];
   
    preg_match("/<title>(.*?)-(.*)<\/title>/",  $text, $title);
                              //经分析,酷六的视频截图地址在视频页面的<spanclass="s_pic“></span>标签之间
    preg_match_all("/<spanclass="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("/<spanclass="s_pic">(.*)<\/span>/",$tudou,$imageurl);
    if(!empty($imageurl[1][0])) {
      $return['imageurl']= $imageurl[1][0];
     
    if(!empty($title)) {
      $return['title']= $title[1];
       
  }
  return $return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值