欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

通过JAVA获取优酷视频 Java新浪微博HTML.net 

程序员文章站 2024-02-24 08:03:22
...
通过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