【转】通过JAVA获取优酷、土豆、酷6、6间房等视频
代码如下:
*@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());
}
}
视频封装类
}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间房等视频相关推荐
- 通过JAVA获取优酷、土豆、酷6、6间房等视频
为什么80%的码农都做不了架构师?>>> 通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能 ...
- JAVA获取优酷、土豆、酷6等视频实例
通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...
- JAVA获取优酷、土豆、酷6、6间房等视频
通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...
- 分享:通过JAVA获取优酷、土豆、酷6、6间房等视频
分享:通过JAVA获取优酷.土豆.酷6.6间房等视频 2011年12月27日 通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视 ...
- 获取优酷、土豆、酷6、6间房等视频
通过JAVA获取优酷.土豆.酷6.6间房.56视频,现在很多社会网站都有这个功能,用户输入优酷.土豆.酷6.6间房.56视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. ...
- 仿微博抓取视频网站,支持优酷/土豆/酷6/六间房/56网/音悦台/搜狐/奇艺的视频发布的java实现 ...
视频分享效果为在站点内输入一视频网站某一视频链接,分享后即可类似微博或qq空间中那样直接点击播放,此代码赞只支持上述视频网站,6间房的视频有点问题,后面将继续扩展抓取其他视频网站. 分享后效果图: 实 ...
- 通过JAVA获取优酷视频
通过JAVA获取优酷视频,现在很多社会网站都有这个功能,用户输入优酷视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. 比如:新浪微博就有这个功能,当用户输入视频网址后,就 ...
- java 截取优酷视频_通过JAVA获取优酷视频
通过JAVA获取优酷视频,现在很多社会网站都有这个功能,用户输入优酷视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长. 比如:新浪微博就有这个功能,当用户输入视频网址后,就 ...
- php 读取优酷视频缩略图,PHP优酷土豆酷6采集入库函数(获取视频缩略图,视频swf地址,视频标题)...
/** * 采集入库函数 * 优酷,土豆,酷6 采集 (自动获取视频缩略图,视频swf地址,视频标题) * by hkshadow * QQ 2765237 * dete: 2011-06-25 AM ...
最新文章
- 微寻,把“线下医院”带到“线上轻松问诊”
- django实现长链接
- freebsd php 编译 mysql sql2005_问下:Freebsd下用php连接ms sql server
- Windows最经典应用大变脸:学生爽翻!
- bat批处理启动QQ、微信、企业微信
- 基础问题:在一个 Activity 中定义的串口接收程序,如果 Activity 切换到其它 Activity 后还能接收到串口数据吗?...
- [python] 安装numpy+scipy+matlotlib+scikit-learn及问题解决
- python中uniform(a、b)_关于uniform的详细介绍
- 关闭sublime更新提示完整方案(转)并且统一TAB为四个空格、禁止升级检查
- c#学习总结(一)---Mr.Zhang
- python房价预测_Python实战:使用线性回归预测房价
- 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建
- 项目中对axios的全局封装
- 移动技术--从网页游戏谈起1--网页游戏的兴起和现状
- U盘无法格式化解决方法
- 如何用计算机ip连接打印机共享,ip共享打印机怎么设置
- 《精益创业》读书笔记
- vuepress打包报错:error Error rendering /:
- Android 6.0/7.0权限
- Mand Mobile
热门文章
- fortran中write用法
- 缴费卢卡斯江东父老卡机的离开
- photoscape x pro中文特别授权版(照片处理工具) v4.1.1
- matlab转向梯形优化设计,基于MATLAB优化工具箱的整体式转向梯形优化设计
- JAVA毕业设计高校学生资助管理信息系统计算机源码+lw文档+系统+调试部署+数据库
- 使用HistCite进行文献引用分析
- 数学专业的数学与计算机专业的数学的比较
- 2023上半年软考系统分析师科目一整理-02
- 深度之眼Paper带读笔记NLP.18:UMT
- 免费OCR技术的对比,百度的PaddleOCR效果最好