`
sunlightcs
  • 浏览: 76024 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

通过JAVA获取优酷视频

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

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;


/**
* 获取优酷视频
* @author sunlightcs
* 2011-3-29
* http://hi.juziku.com/sunlightcs/
*/
public class VideoTest {

	public static void main(String[] args) throws Exception{
		String pic = getElementAttrById("s_sina", "href");
		int local = pic.indexOf("pic=");
		pic = pic.substring(local+4);
		System.out.println("视频缩略图:"+pic);
		
		
		String flashUrl = getElementAttrById("link2", "value");
		System.out.println("视频地址:"+flashUrl);
		
		
		String time = getElementAttrById("download", "href");
		String []arrays = time.split("\\|");
		time = arrays[4];
		System.out.println("视频时长:"+time);
		
	}
	
	
	/**
	 * 根据HTML的ID键及属于名,获取属于值
	 * @param id  HTML的ID键
	 * @param attrName  属于名
	 * @return  返回属性值
	 */
	private static String getElementAttrById(String id, String attrName)throws Exception{
		Document doc = getURLContent();
		Element et = doc.getElementById(id);
		String attrValue = et.attr(attrName);
		
		return attrValue;
	}
	

	
	/**
	 * 获取优酷网页的内容
	 */
	private static Document getURLContent() throws MalformedURLException, IOException, UnsupportedEncodingException {
		Document doc = Jsoup.connect("http://v.youku.com/v_show/id_XMjU0MjI2NzY0.html")
		  .data("query", "Java")
		  .userAgent("Mozilla")
		  .cookie("auth", "token")
		  .timeout(3000)
		  .post();
		return doc;
	}

}


全文请访问:http://www.juziku.com/wiki/711.htm

分享到:
评论
26 楼 sunlightcs 2011-04-20  
何处烤地瓜 写道
喜欢Java的女生跟喜欢DOTA的女生     都挺好的

25 楼 何处烤地瓜 2011-04-20  
喜欢Java的女生跟喜欢DOTA的女生     都挺好的
24 楼 sunlightcs 2011-04-15  
java_user 写道
可能是为了减轻服务器负载和便于检索,一些大的视频确实可能是分段的

是的,一般视频网站都是这样处理的。
23 楼 java_user 2011-04-14  
可能是为了减轻服务器负载和便于检索,一些大的视频确实可能是分段的
22 楼 neal 2011-04-14  
sunlightcs 写道
neal 写道
貌似真正的视频源是http://xxxx.flv,有没有办法把这个解析出来

一个视频,是由很多个flv文件组成的,一般都不用这些文件了。

有些工具能下载flv视频的视频,难道是将多个flv拼起来的?
21 楼 sunlightcs 2011-04-13  
neal 写道
貌似真正的视频源是http://xxxx.flv,有没有办法把这个解析出来

一个视频,是由很多个flv文件组成的,一般都不用这些文件了。
20 楼 neal 2011-04-13  
貌似真正的视频源是http://xxxx.flv,有没有办法把这个解析出来
19 楼 sunlightcs 2011-04-07  
449302900 写道
呵呵,学习了!!以前都没见过、、

共同学习,
18 楼 449302900 2011-04-07  
呵呵,学习了!!以前都没见过、、
17 楼 yuanfeng_dong 2011-04-07  
楼主头像是亮点  楼主很漂亮,不要做这行了,找个有钱的嫁了吧!
16 楼 sunlightcs 2011-04-06  
spaljay 写道
很有用的jar包

呵呵   是的了,蛮好用的。
15 楼 spaljay 2011-04-06  
很有用的jar包
14 楼 sunlightcs 2011-04-05  
htj1231825 写道
那天看见一个 获取土豆视频,今天又出来一个优酷的。。。orz

常见的视频网站,都有相应的代码,在我的博客里了。

有时间,把这些代码整理一下。
13 楼 htj1231825 2011-04-05  
那天看见一个 获取土豆视频,今天又出来一个优酷的。。。orz
12 楼 housheng33 2011-04-05  
很不错啊,
有雷锋精神
11 楼 sunlightcs 2011-04-04  
liuxinglanyue 写道
原来还有 jsoup 这个东东,学到了。我是用httpclient+正则的

这个很方便的,呵呵
10 楼 liuxinglanyue 2011-04-04  
原来还有 jsoup 这个东东,学到了。我是用httpclient+正则的
9 楼 sunlightcs 2011-04-04  
happysoul 写道
问题:
getElementAttrById方法中调用getURLContent()方法返回Document
每次调用取Id对应对象的方法都会重新访问Url

试验方法:63行 return doc; 前面加上System.out.println(doc);
细看就能知道网络访问了3次youku的url

感觉只是照着jsoup例子把代码堆叠在一起而已~~

代码没有做优化了,只是一个例子。
8 楼 txin0814 2011-04-04  
jsoup 好东西呀
7 楼 sam_chi 2011-04-04  
jsoup解析HTML感觉很赞!

相关推荐

    JAVA获取视频缩略图

    在Java编程环境中,获取视频缩略图是一项常见的需求,尤其在多媒体应用或者视频分享平台中。这个过程涉及到多媒体处理和图像操作的知识。本文将详细解释如何在Java中实现这一功能,以及相关的技术点。 首先,Java...

    Java 获取视频时长、格式、大小需要的jar

    在Java编程环境中,有时我们需要处理多媒体文件,特别是视频文件,比如获取视频的时长、格式以及文件大小等信息。为了实现这些功能,开发者通常会依赖第三方库。在本例中,我们关注的是名为"jave-1.0.2"的库,它是一...

    java使用Xuggler获得视频时长,分辨率,高宽,码率等信息

    Java编程语言在处理多媒体文件,特别是视频文件时,常常需要获取诸如时长、分辨率、高宽比以及码率等关键信息。Xuggler是一个强大的开源库,专为处理音视频数据而设计,它提供了丰富的API,使得在Java环境中解析和...

    java获取视频长度

    标题"java获取视频长度"和标签"video"暗示我们要关注的是处理视频文件的Java方法。JAVE是一个强大的Java库,它允许我们对音频和视频进行转码、提取元数据等操作。在这个场景下,我们可以利用JAVE库来获取视频的时长...

    Java获取文件分辨率,大小等基本信息Demo

    总的来说,通过引入第三方库,Java程序员可以方便地处理视频文件,获取包括分辨率、大小在内的各种信息,从而实现更复杂的多媒体应用。记得在实际项目中,确保已经正确地将这些库加入到项目的构建路径或依赖管理中,...

    java 获取地址工具类 java 获取地址工具类

    java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java ...

    java ipmi,vxipmi 通过java获取服务器信息,温度、风扇、内存等

    在Java IPMI和VxIPMI中,你可以通过以下步骤获取服务器信息: 1. **建立连接**:首先,你需要通过Java程序建立到目标服务器的IPMI连接。这通常涉及设置服务器的IP地址、端口、用户名和密码。VxIPMI库可能提供了一种...

    java中使用FFMpeg获取视频时长

    总的来说,Java中使用FFmpeg获取视频时长是一项实用的功能,通过FFmpeg的Java绑定库,我们可以轻松地在Java应用中集成这一特性。这不仅有助于提升用户体验,例如在上传视频时即时显示时长,还可以用于其他如视频处理...

    java中如何获取视频的封面和时常

    一步到位,直接解决获取不到视频封面的问题。遥遥领先

    java-getDisk.rar_Java 获取主板ID_java获取电脑ID

    在Java中,没有内置的方法直接获取主板ID,但可以通过读取Windows系统的注册表或Linux系统的硬件文件来间接获取。`MiscUtils.java`可能包含了这样的功能。在Windows环境下,可以使用`java.lang.management....

    javaCV将socket获取的视频流推到流媒体(RTMP)服务器jar

    JavaCV 是一个强大的Java库,它为Java程序员提供了与...以上就是使用JavaCV将通过Socket获取的视频流推送到RTMP服务器涉及的核心技术点。在实际开发中,开发者需要理解这些技术,并结合具体需求进行相应的编程实现。

    java使用OpenCV从视频文件中获取帧

    "java使用OpenCV从视频文件中获取帧" Java使用OpenCV从视频文件中获取帧是指使用Java语言和OpenCV库从视频文件中提取图像帧的过程。本文将详细介绍如何使用Java和OpenCV从视频文件中获取帧,并提供了具体的代码实例...

    java获取文件创建时间

    在Java 7中引入了新的文件I/O API,即`java.nio.file`包,这使得开发人员能够更方便地操作文件系统,并且可以通过这些API获取文件的元数据,包括创建时间。 ##### 示例代码 以下是一个使用Java 7及以上版本来获取...

    Java利用FFmpeg解析视频,截图,获取视频播放时间

    Java使用FFmpeg解析视频、截图和获取播放时间的实践是一个重要的技术主题,尤其在多媒体处理领域。FFmpeg是一个强大的开源工具集,包含了多种用于处理音频和视频的工具,如ffprobe、ffmpeg等。在Java中集成FFmpeg,...

    java视频剪辑,截取视频指定时间段内容

    ”这部分内容提示我们,这是一个基于Eclipse开发的Java项目,开发者可以通过Eclipse IDE来运行和调试代码,通过执行主类(main方法)来启动视频剪辑功能。 Java视频剪辑涉及到的技术主要包括以下几个方面: 1. **...

    java后端调用大华视频的demo

    在本文中,我们将深入探讨如何在Java后端环境中调用大华视频的API,以便集成视频监控功能。...通过理解这两个示例,开发者可以学习如何在自己的项目中实现类似的功能,从而扩展Java应用的视频处理能力。

    java实现视频压缩

    通过研究这些文件,开发者可以学习如何在Java环境中实现视频压缩的完整流程,并根据需求进行定制和优化。 总之,Java实现视频压缩涉及到多媒体处理、图像编码、数据封装等多个技术环节,虽然Java不是首选的视频处理...

    kettle通过java脚本获取数据库的值

    kettle通过java脚本获取数据库的值..................................................................

    java的jsp实现视频播放

    这里的`src`属性引用了服务器上的视频文件路径,可以通过JSP的表达式语言获取。`controls`属性显示播放、暂停等控制。 为了实现视频播放,我们还需要处理视频文件的路径。在Java后端,通常会用到Servlet来处理请求...

    java中通过request获取IP以及MAC地址.java

    获取用户请求IP地址 根据IP地址获取mac地址

Global site tag (gtag.js) - Google Analytics