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;

  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值