通过JAVA获取优酷、土豆、酷6、6间房、56视频,现在很多社会网站都有这个功能,用户输入优酷、土豆、酷6、6间房、56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长。
比如:新浪微博就有这个功能,当用户输入优酷、土豆、酷6、6间房、56视频网址后,就能获取到相应的视频地址及视频的缩略图。



代码如下:

importorg.jsoup.Jsoup; importorg.jsoup.nodes.Document; importorg.jsoup.nodes.Element; importorg.jsoup.select.Elements; publicclassVideoUtil {/*** 获取视频信息
     *
@paramurl
     *
@return*/publicstaticVideo getVideoInfo(String url){
        Video video
=newVideo();if(url.indexOf("v.youku.com")!=-1){try{
                video
=getYouKuVideo(url);
            }
catch(Exception e) {
                video
=null;
            }
        }
elseif(url.indexOf("tudou.com")!=-1){try{
                video
=getTudouVideo(url);
            }
catch(Exception e) {
                video
=null;
            }
        }
elseif(url.indexOf("v.ku6.com")!=-1){try{
                video
=getKu6Video(url);
            }
catch(Exception e) {
                video
=null;
            }
        }
elseif(url.indexOf("6.cn")!=-1){try{
                video
=get6Video(url);
            }
catch(Exception e) {
                video
=null;
            }
        }
elseif(url.indexOf("56.com")!=-1){try{
                video
=get56Video(url);
            }
catch(Exception e) {
                video
=null;
            }
        }
returnvideo;
    }
/*** 获取优酷视频
     *
@paramurl  视频URL*/publicstaticVideo getYouKuVideo(String url)throwsException{
        Document doc
=getURLContent(url);/***获取视频缩略图*/String pic=getElementAttrById(doc,"s_sina","href");intlocal=pic.indexOf("pic=");
        pic
=pic.substring(local+4);/*** 获取视频地址*/String flash=getElementAttrById(doc,"link2","value");/*** 获取视频时间*/String time=getElementAttrById(doc,"download","href");
        String []arrays
=time.split("\\|");
        time
=arrays[4];
        
        Video video
=newVideo();
        video.setPic(pic);
        video.setFlash(flash);
        video.setTime(time);
returnvideo;
    }
/*** 获取土豆视频
     *
@paramurl  视频URL*/publicstaticVideo getTudouVideo(String url)throwsException{
        Document doc
=getURLContent(url);
        String content
=doc.html();intbeginLocal=content.indexOf("<script>document.domain");intendLocal=content.indexOf("</script>");
        content
=content.substring(beginLocal, endLocal);/*** 获取视频地址*/String flash=getScriptVarByName("iid_code", content);
        flash
="http://www.tudou.com/v/"+flash+"/v.swf";/***获取视频缩略图*/String pic=getScriptVarByName("thumbnail", content);/*** 获取视频时间*/String time=getScriptVarByName("time", content);

Video video=newVideo();
        video.setPic(pic);
        video.setFlash(flash);
        video.setTime(time);
returnvideo;
    }
/*** 获取酷6视频
     *
@paramurl  视频URL*/publicstaticVideo getKu6Video(String url)throwsException{
        Document doc
=getURLContent(url);/*** 获取视频地址*/Element flashEt=doc.getElementById("outSideSwfCode");
        String flash
=flashEt.attr("value");/*** 获取视频缩略图*/Element picEt=doc.getElementById("plVideosList");
        String time
=null;
        String pic
=null;if(picEt!=null){
            Elements pics
=picEt.getElementsByTag("img");
            pic
=pics.get(0).attr("src");/*** 获取视频时长*/Element timeEt=picEt.select("span.review>cite").first(); 
            time
=timeEt.text();
        }
else{
            pic
=doc.getElementsByClass("s_pic").first().text();
        }
        
        Video video
=newVideo();
        video.setPic(pic);
        video.setFlash(flash);
        video.setTime(time);
returnvideo;
        
    }
/*** 获取6间房视频
     *
@paramurl  视频URL*/publicstaticVideo get6Video(String url)throwsException{
        Document doc
=getURLContent(url);/*** 获取视频缩略图*/Element picEt=doc.getElementsByClass("summary").first();
        String pic
=picEt.getElementsByTag("img").first().attr("src");/*** 获取视频时长*/String time=getVideoTime(doc, url,"watchUserVideo");if(time==null){
            time
=getVideoTime(doc, url,"watchRelVideo");
        }
/*** 获取视频地址*/Element flashEt=doc.getElementById("video-share-code");
        doc
=Jsoup.parse(flashEt.attr("value"));  
        String flash
=doc.select("embed").attr("src");
        
        Video video
=newVideo();
        video.setPic(pic);
        video.setFlash(flash);
        video.setTime(time);
returnvideo;
    }
/*** 获取56视频
     *
@paramurl  视频URL*/publicstaticVideo get56Video(String url)throwsException{
        Document doc
=getURLContent(url);
        String content
=doc.html();/*** 获取视频缩略图*/intbegin=content.indexOf("\"img\":\""); content=content.substring(begin+7, begin+200);intend=content.indexOf("\"};"); String pic=content.substring(0, end).trim();
        pic
=pic.replaceAll("\\\\","");/*** 获取视频地址*/String flash="http://player.56.com"+url.substring(url.lastIndexOf("/"), url.lastIndexOf(".html"))+".swf";
        
        Video video
=newVideo();
        video.setPic(pic);
        video.setFlash(flash);
returnvideo;
    }
/*** 获取6间房视频时长*/privatestaticString getVideoTime(Document doc, String url, String id) {
        String time
=null;
        
        Element timeEt
=doc.getElementById(id); 
        Elements links
=timeEt.select("dt > a");for(Element link : links) {
          String linkHref
=link.attr("href");if(linkHref.equalsIgnoreCase(url)){
              time
=link.parent().getElementsByTag("em").first().text();break;
          }
        }
returntime;
    }
/*** 获取script某个变量的值
     *
@paramname  变量名称
     *
@return返回获取的值*/privatestaticString getScriptVarByName(String name, String content){
        String script
=content;intbegin=script.indexOf(name);
        
        script
=script.substring(begin+name.length()+2);intend=script.indexOf(",");
        
        script
=script.substring(0,end);
        
        String result
=script.replaceAll("'","");
        result
=result.trim();returnresult;
    }
/*** 根据HTML的ID键及属于名,获取属于值
     *
@paramid  HTML的ID键
     *
@paramattrName  属于名
     *
@return返回属性值*/privatestaticString getElementAttrById(Document doc, String id, String attrName)throwsException{
        Element et
=doc.getElementById(id);
        String attrValue
=et.attr(attrName);returnattrValue;
    }
/*** 获取网页的内容*/privatestaticDocument getURLContent(String url)throwsException{
        Document doc
=Jsoup.connect(url)
          .data(
"query","Java")
          .userAgent(
"Mozilla")
          .cookie(
"auth","token")
          .timeout(
6000)
          .post();
returndoc;
    }
publicstaticvoidmain(String[] args) {//String url = "http://v.youku.com/v_show/id_XMjU0MjI2NzY0.html";//String url = "http://www.tudou.com/programs/view/pVploWOtCQM/";//String url = "http://v.ku6.com/special/show_4024167/9t7p64bisV2A31Hz.html";//String url = "http://v.ku6.com/show/BpP5LeyVwvikbT1F.html";//String url = "http://6.cn/watch/14757577.html"; String url="http://www.56.com/u64/v_NTkzMDEzMTc.html";
        Video video
=getVideoInfo(url);
        System.out.println(
"视频缩略图:"+video.getPic());
        System.out.println(
"视频地址:"+video.getFlash());
        System.out.println(
"视频时长:"+video.getTime());
    }
}

视频封装类

publicclassVideo {privateString flash;privateString pic;privateString time;publicString getFlash() {returnflash;
    }
publicvoidsetFlash(String flash) {this.flash=flash;
    }
publicString getPic() {returnpic;
    }
publicvoidsetPic(String pic) {this.pic=pic;
    }
publicString getTime() {returntime;
    }
publicvoidsetTime(String time) {this.time=time;
    }
}

其中要用到一个JAR包,链接地址如下:

http://jsoup.org/packages/jsoup-1.5.2.jar

转自:http://www.blogjava.net/libin2722/articles/351642.html

【转】通过JAVA获取优酷、土豆、酷6、6间房等视频相关推荐

  1. 通过JAVA获取优酷、土豆、酷6、6间房等视频

    为什么80%的码农都做不了架构师?>>>    通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能 ...

  2. JAVA获取优酷、土豆、酷6等视频实例

    通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...

  3. JAVA获取优酷、土豆、酷6、6间房等视频

    通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...

  4. 分享:通过JAVA获取优酷、土豆、酷6、6间房等视频

    分享:通过JAVA获取优酷.土豆.酷6.6间房等视频 2011年12月27日 通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视 ...

  5. 获取优酷、土豆、酷6、6间房等视频

    通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...

  6. 仿微博抓取视频网站,支持优酷/土豆/酷6/六间房/56网/音悦台/搜狐/奇艺的视频发布的java实现 ...

    视频分享效果为在站点内输入一视频网站某一视频链接,分享后即可类似微博或qq空间中那样直接点击播放,此代码赞只支持上述视频网站,6间房的视频有点问题,后面将继续扩展抓取其他视频网站. 分享后效果图: 实 ...

  7. 通过JAVA获取优酷视频

    通过JAVA获取优酷视频,现在很多社会网站都有这个功能,用户输入优酷视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. 比如:新浪微博就有这个功能,当用户输入视频网址后,就 ...

  8. java 截取优酷视频_通过JAVA获取优酷视频

    通过JAVA获取优酷视频,现在很多社会网站都有这个功能,用户输入优酷视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. 比如:新浪微博就有这个功能,当用户输入视频网址后,就 ...

  9. php 读取优酷视频缩略图,PHP优酷土豆酷6采集入库函数(获取视频缩略图,视频swf地址,视频标题)...

    /** * 采集入库函数 * 优酷,土豆,酷6 采集 (自动获取视频缩略图,视频swf地址,视频标题) * by hkshadow * QQ 2765237 * dete: 2011-06-25 AM ...

最新文章

  1. 微寻,把“线下医院”带到“线上轻松问诊”
  2. django实现长链接
  3. freebsd php 编译 mysql sql2005_问下:Freebsd下用php连接ms sql server
  4. Windows最经典应用大变脸:学生爽翻!
  5. bat批处理启动QQ、微信、企业微信
  6. 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?...
  7. [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
  8. python中uniform(a、b)_关于uniform的详细介绍
  9. 关闭sublime更新提示完整方案(转)并且统一TAB为四个空格、禁止升级检查
  10. c#学习总结(一)---Mr.Zhang
  11. python房价预测_Python实战:使用线性回归预测房价
  12. 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建
  13. 项目中对axios的全局封装
  14. 移动技术--从网页游戏谈起1--网页游戏的兴起和现状
  15. U盘无法格式化解决方法
  16. 如何用计算机ip连接打印机共享,ip共享打印机怎么设置
  17. 《精益创业》读书笔记
  18. vuepress打包报错:error Error rendering /:
  19. Android 6.0/7.0权限
  20. Mand Mobile

热门文章

  1. fortran中write用法
  2. 缴费卢卡斯江东父老卡机的离开
  3. photoscape x pro中文特别授权版(照片处理工具) v4.1.1
  4. matlab转向梯形优化设计,基于MATLAB优化工具箱的整体式转向梯形优化设计
  5. JAVA毕业设计高校学生资助管理信息系统计算机源码+lw文档+系统+调试部署+数据库
  6. 使用HistCite进行文献引用分析
  7. 数学专业的数学与计算机专业的数学的比较
  8. 2023上半年软考系统分析师科目一整理-02
  9. 深度之眼Paper带读笔记NLP.18:UMT
  10. 免费OCR技术的对比,百度的PaddleOCR效果最好