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

其中要用到一个JAR包,链接地址如下:
http://jsoup.org/packages/jsoup-1.5.2.jar

原文地址:http://www.juziku.com/wiki/906.htm

核心代码:

Java代码  收藏代码
  1. importorg.jsoup.Jsoup;
  2. importorg.jsoup.nodes.Document;
  3. importorg.jsoup.nodes.Element;
  4. importorg.jsoup.select.Elements;
  5. /**
  6. * 视频工具类
  7. * http://hi.juziku.com/sunlightcs/
  8. */
  9. publicclassVideoUtil {
  10. /**
  11. * 获取视频信息
  12. * @param url
  13. * @return
  14. */
  15. publicstaticVideo getVideoInfo(String url){
  16. Video video = newVideo();
  17. if(url.indexOf("v.youku.com")!=-1){
  18. try{
  19. video = getYouKuVideo(url);
  20. catch(Exception e) {
  21. video = null;
  22. }
  23. }elseif(url.indexOf("tudou.com")!=-1){
  24. try{
  25. video = getTudouVideo(url);
  26. catch(Exception e) {
  27. video = null;
  28. }
  29. }elseif(url.indexOf("v.ku6.com")!=-1){
  30. try{
  31. video = getKu6Video(url);
  32. catch(Exception e) {
  33. video = null;
  34. }
  35. }elseif(url.indexOf("6.cn")!=-1){
  36. try{
  37. video = get6Video(url);
  38. catch(Exception e) {
  39. video = null;
  40. }
  41. }elseif(url.indexOf("56.com")!=-1){
  42. try{
  43. video = get56Video(url);
  44. catch(Exception e) {
  45. video = null;
  46. }
  47. }
  48. returnvideo;
  49. }
  50. /**
  51. * 获取优酷视频
  52. * @param url  视频URL
  53. */
  54. publicstaticVideo getYouKuVideo(String url)throwsException{
  55. Document doc = getURLContent(url);
  56. /**
  57. *获取视频缩略图
  58. */
  59. String pic = getElementAttrById(doc, "s_sina","href");
  60. intlocal = pic.indexOf("pic=");
  61. pic = pic.substring(local+4);
  62. /**
  63. * 获取视频地址
  64. */
  65. String flash = getElementAttrById(doc, "link2","value");
  66. /**
  67. * 获取视频时间
  68. */
  69. String time = getElementAttrById(doc, "download","href");
  70. String []arrays = time.split("\\|");
  71. time = arrays[4];
  72. Video video = newVideo();
  73. video.setPic(pic);
  74. video.setFlash(flash);
  75. video.setTime(time);
  76. returnvideo;
  77. }
  78. /**
  79. * 获取土豆视频
  80. * @param url  视频URL
  81. */
  82. publicstaticVideo getTudouVideo(String url)throwsException{
  83. Document doc = getURLContent(url);
  84. String content = doc.html();
  85. intbeginLocal = content.indexOf("<script>document.domain");
  86. intendLocal = content.indexOf("</script>");
  87. content = content.substring(beginLocal, endLocal);
  88. /**
  89. * 获取视频地址
  90. */
  91. String flash = getScriptVarByName("iid_code", content);
  92. flash = "http://www.tudou.com/v/"+ flash +"/v.swf";
  93. /**
  94. *获取视频缩略图
  95. */
  96. String pic = getScriptVarByName("thumbnail", content);
  97. /**
  98. * 获取视频时间
  99. */
  100. String time = getScriptVarByName("time", content);
  101. Video video = newVideo();
  102. video.setPic(pic);
  103. video.setFlash(flash);
  104. video.setTime(time);
  105. returnvideo;
  106. }
  107. /**
  108. * 获取酷6视频
  109. * @param url  视频URL
  110. */
  111. publicstaticVideo getKu6Video(String url)throwsException{
  112. Document doc = getURLContent(url);
  113. /**
  114. * 获取视频地址
  115. */
  116. Element flashEt = doc.getElementById("outSideSwfCode");
  117. String flash = flashEt.attr("value");
  118. /**
  119. * 获取视频缩略图
  120. */
  121. Element picEt = doc.getElementById("plVideosList");
  122. String time = null;
  123. String pic = null;
  124. if(picEt!=null){
  125. Elements pics = picEt.getElementsByTag("img");
  126. pic = pics.get(0).attr("src");
  127. /**
  128. * 获取视频时长
  129. */
  130. Element timeEt = picEt.select("span.review>cite").first();
  131. time = timeEt.text();
  132. }else{
  133. pic = doc.getElementsByClass("s_pic").first().text();
  134. }
  135. Video video = newVideo();
  136. video.setPic(pic);
  137. video.setFlash(flash);
  138. video.setTime(time);
  139. returnvideo;
  140. }
  141. /**
  142. * 获取6间房视频
  143. * @param url  视频URL
  144. */
  145. publicstaticVideo get6Video(String url)throwsException{
  146. Document doc = getURLContent(url);
  147. /**
  148. * 获取视频缩略图
  149. */
  150. Element picEt = doc.getElementsByClass("summary").first();
  151. String pic = picEt.getElementsByTag("img").first().attr("src");
  152. /**
  153. * 获取视频时长
  154. */
  155. String time = getVideoTime(doc, url, "watchUserVideo");
  156. if(time==null){
  157. time = getVideoTime(doc, url, "watchRelVideo");
  158. }
  159. /**
  160. * 获取视频地址
  161. */
  162. Element flashEt = doc.getElementById("video-share-code");
  163. doc = Jsoup.parse(flashEt.attr("value"));
  164. String flash = doc.select("embed").attr("src");
  165. Video video = newVideo();
  166. video.setPic(pic);
  167. video.setFlash(flash);
  168. video.setTime(time);
  169. returnvideo;
  170. }
  171. /**
  172. * 获取56视频
  173. * @param url  视频URL
  174. */
  175. publicstaticVideo get56Video(String url)throwsException{
  176. Document doc = getURLContent(url);
  177. String content = doc.html();
  178. /**
  179. * 获取视频缩略图
  180. */
  181. intbegin = content.indexOf("\"img\":\"");
  182. content = content.substring(begin+7, begin+200);
  183. intend = content.indexOf("\"};");
  184. String pic = content.substring(0, end).trim();
  185. pic = pic.replaceAll("\\\\", "");
  186. /**
  187. * 获取视频地址
  188. */
  189. String flash = "http://player.56.com"+ url.substring(url.lastIndexOf("/"), url.lastIndexOf(".html")) +".swf";
  190. Video video = newVideo();
  191. video.setPic(pic);
  192. video.setFlash(flash);
  193. returnvideo;
  194. }
  195. /**
  196. * 获取6间房视频时长
  197. */
  198. privatestaticString getVideoTime(Document doc, String url, String id) {
  199. String time = null;
  200. Element timeEt = doc.getElementById(id);
  201. Elements links = timeEt.select("dt > a");
  202. for(Element link : links) {
  203. String linkHref = link.attr("href");
  204. if(linkHref.equalsIgnoreCase(url)){
  205. time = link.parent().getElementsByTag("em").first().text();
  206. break;
  207. }
  208. }
  209. returntime;
  210. }
  211. /**
  212. * 获取script某个变量的值
  213. * @param name  变量名称
  214. * @return   返回获取的值
  215. */
  216. privatestaticString getScriptVarByName(String name, String content){
  217. String script = content;
  218. intbegin = script.indexOf(name);
  219. script = script.substring(begin+name.length()+2);
  220. intend = script.indexOf(",");
  221. script = script.substring(0,end);
  222. String result=script.replaceAll("'","");
  223. result = result.trim();
  224. returnresult;
  225. }
  226. /**
  227. * 根据HTML的ID键及属于名,获取属于值
  228. * @param id  HTML的ID键
  229. * @param attrName  属于名
  230. * @return  返回属性值
  231. */
  232. privatestaticString getElementAttrById(Document doc, String id, String attrName)throwsException{
  233. Element et = doc.getElementById(id);
  234. String attrValue = et.attr(attrName);
  235. returnattrValue;
  236. }
  237. /**
  238. * 获取网页的内容
  239. */
  240. privatestaticDocument getURLContent(String url)throwsException{
  241. Document doc = Jsoup.connect(url)
  242. .data("query","Java")
  243. .userAgent("Mozilla")
  244. .cookie("auth","token")
  245. .timeout(6000)
  246. .post();
  247. returndoc;
  248. }
  249. publicstaticvoidmain(String[] args) {
  250. //String url = "http://v.youku.com/v_show/id_XMjU0MjI2NzY0.html";
  251. //String url = "http://www.tudou.com/programs/view/pVploWOtCQM/";
  252. //String url = "http://v.ku6.com/special/show_4024167/9t7p64bisV2A31Hz.html";
  253. //String url = "http://v.ku6.com/show/BpP5LeyVwvikbT1F.html";
  254. //String url = "http://6.cn/watch/14757577.html";
  255. String url = "http://www.56.com/u64/v_NTkzMDEzMTc.html";
  256. Video video = getVideoInfo(url);
  257. System.out.println("视频缩略图:"+video.getPic());
  258. System.out.println("视频地址:"+video.getFlash());
  259. System.out.println("视频时长:"+video.getTime());
  260. }
  261. }

视频封装类:

Java代码  收藏代码
  1. /**
  2. * 视频封装
  3. * http://hi.juziku.com/sunlightcs/
  4. */
  5. publicclassVideo {
  6. privateString flash;
  7. privateString pic;
  8. privateString time;
  9. publicString getFlash() {
  10. returnflash;
  11. }
  12. publicvoidsetFlash(String flash) {
  13. this.flash = flash;
  14. }
  15. publicString getPic() {
  16. returnpic;
  17. }
  18. publicvoidsetPic(String pic) {
  19. this.pic = pic;
  20. }
  21. publicString getTime() {
  22. returntime;
  23. }
  24. publicvoidsetTime(String time) {
  25. this.time = time;
  26. }
  27. }

获取优酷、土豆、酷6、6间房等视频相关推荐

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

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

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

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

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

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

  4. 爬虫项目实战九:爬取6间房小视频

    爬取6间房小视频 目标 项目准备 网站分析 页码分析 反爬分析 代码实现 效果显示 目标 爬取6间房小视频,批量保存到本地文件夹. 项目准备 软件:Pycharm 第三方库:requests,fake ...

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

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

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

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

  7. 【转】通过JAVA获取优酷、土豆、酷6、6间房等视频

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

  8. php获取视频信息,支持优酷土豆新浪腾讯等多家网站

    video.php类 <?php /** * 解析 视频信息 类 * * 支持 优酷, 土豆 酷6 56 新浪 qq播客 乐视 乐视 **/class class_video{// 超时时间va ...

  9. 如何下载优酷土豆、新浪等视频网站视频

    今天第一次写博客,没啥为大家共享的,就介绍一款下载优酷土豆.新浪等视频网站的软件. 大家都知道,下载优酷土豆.新浪上的一些视频,通常都要求你注册账号,还要下载个专门的视频下载软件,显得非常繁琐.并且有 ...

最新文章

  1. Perforce使用之创建DEPOT流程
  2. C# 用文本框输入的时间段查询SQL数据库
  3. 对于java反射的理解
  4. HDU多校2 - 6767 New Equipments(最小费用最大流)
  5. 如何在管理员页面查看知识星球活跃度和更多明细
  6. leetcode - 467. 环绕字符串中唯一的子字符串
  7. python能画k线图吗_,求教使用python绘制K线图
  8. java 存储输入_java将用户输入信息保存至txt文件
  9. matlab多图形相交,用MATLAB作出柱面x^2+y^2=4 和柱面x^2+z^2=4 相交的图形.
  10. Vue 常用前端UI框架
  11. 基于ArcGIS软件的打开教程
  12. 你会如何选型电容?关于电容的ESR?如何理解电容的阻抗-频率曲线?
  13. 中国工科研究生200多篇英文论文中最常见的习惯(The Most Common Habits from more than 200 English Papers written by Gradua)
  14. 审车按月还是日期_车辆年检年审时间,看月份还是看日期
  15. 嵌入式 Linux平台 C程序 交叉编译技术
  16. 科研伦理与学术规范(笔记)
  17. 独家发布!java总结与心得,下载量瞬秒百万
  18. 系统渗透与防护——信息收集与暴力破解
  19. 图神经网络的图网络学习(上)
  20. 技术学院技能发展网络在线技能培训在线技能Rtaj比赛进行到一乔

热门文章

  1. php友情链接大于3换行,交换友情链接需要了解的一些常识和原则
  2. linux内核看门狗关闭方法,linux内核中断之看门狗
  3. 邮箱大师发送邮件服务器连接失败,网易邮箱大师退信的解决方法分享 网易邮箱大师发不了邮件的解决方法介绍...
  4. english-phoneme
  5. 通过Jlink和PyLink读取蓝牙mac地址--Nordicsilicon labs
  6. 学校管理系统(Python)
  7. 提高数据科学工作效率的 8 个Python库!
  8. 深圳MES系统如何助力注塑企业实现数字化发展
  9. 阿里取消周报,打击低效加班!HR透露6大原因!
  10. FAST FW54R V6.1拆解照片