`
sunlightcs
  • 浏览: 75398 次
  • 性别: 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获取文件分辨率,大小等基本信息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库可能提供了一种...

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

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

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

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

    java获取文件创建时间

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

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

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

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

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

    JAVA通过url获取网页内容

    "JAVA 通过 URL 获取网页内容" JAVA 通过 URL 获取网页内容是 Java 编程语言中的一种常见操作。通过使用 URL 类和 URLConnection 类,Java 程序可以连接到远程服务器,获取指定 URL 的内容。本文将详细介绍如何使用...

    java-使用java开发的视频播放器videoplayer

    Java开发的视频播放器VideoPlayer是一款基于Java技术构建的软件,它允许用户在各种操作系统上播放多媒体文件。本文将深入探讨使用Java进行视频播放器开发的相关知识点,包括核心技术、架构设计、多媒体处理以及用户...

    通过Java反射机制获取JavaBean对象

    1.通过Java反射机制获取JavaBean对象。 2.通过JavaBean全路径字符串获取JavaBean对象。 3.获取JavaBean注解信息

    Java 获取日期时间代码

    通过上述示例,我们可以看出Java提供了丰富的API来获取日期时间。不同的应用场景可以选择不同的类和方法来满足需求。例如,在需要处理数据库操作时,使用`java.sql.Date`更为合适;而在需要格式化输出或解析输入时,...

    java websocket实现视频聊天

    在本项目中,Java WebSocket被用来构建一个视频聊天应用,用户可以通过浏览器进行实时视频交流。以下是关于这个项目的详细知识点: 1. **WebSocket API**: WebSocket是HTML5的一个特性,提供双向通信协议,使得...

    java获取电子称重量数据

    本主题聚焦于“Java获取电子称重量数据”的技术实现,这是一个关键的接口开发任务,用于连接和通信电子秤设备,通常是通过串行端口(COM口)进行的。下面我们将深入探讨这一话题。 首先,我们需要理解Java如何与...

    java获取当前windows进程pid

    功能:获取java进程pid 进程可根据该pid调用exec自杀 注意事项:不能改变PidTool.java所在的包,否则需要重行生成dll。 编译命令中 "-PidTool.dll" 改为 "-FePidTool.dll",我整漏了! 使用方法: 1.javac PidTool...

    java获取民族代码 名称

    java获取民族 提供了根据名称代码获得民族对象 mzu.xml存储了56个民族的信息

    java通过ip获取mac地址的工具

    java中通过ip获取远程客户端的mac地址,支持跨平台

Global site tag (gtag.js) - Google Analytics