论坛首页 Java企业应用论坛

通过JAVA获取优酷视频

浏览 9799 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-02  
通过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

   发表时间:2011-04-02  
good,but,楼主,没包啊,顺便提供一下包吧, org.jsoup.* 包提供一下 谢谢了。
0 请登录后投票
   发表时间:2011-04-02  
pouyang 写道
good,but,楼主,没包啊,顺便提供一下包吧, org.jsoup.* 包提供一下 谢谢了。

http://jsoup.org/packages/jsoup-1.5.2.jar
0 请登录后投票
   发表时间:2011-04-03  
不错,想我我写的图片下载器,这个貌似好用的多
0 请登录后投票
   发表时间:2011-04-03  
yuanlei18 写道
不错,想我我写的图片下载器,这个貌似好用的多

0 请登录后投票
   发表时间:2011-04-03  
问题:
getElementAttrById方法中调用getURLContent()方法返回Document
每次调用取Id对应对象的方法都会重新访问Url

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

感觉只是照着jsoup例子把代码堆叠在一起而已~~
0 请登录后投票
   发表时间:2011-04-04  
jsoup这个包没用过,呜呜学习了。我一直以为是REST形式的访问。
0 请登录后投票
   发表时间:2011-04-04  
jsoup解析HTML感觉很赞!
0 请登录后投票
   发表时间:2011-04-04  
jsoup 好东西呀
0 请登录后投票
   发表时间:2011-04-04  
happysoul 写道
问题:
getElementAttrById方法中调用getURLContent()方法返回Document
每次调用取Id对应对象的方法都会重新访问Url

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

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

代码没有做优化了,只是一个例子。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics