论坛首页 Java企业应用论坛

通过JAVA获取土豆视频

浏览 9070 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-04-01  
通过JAVA获取土豆视频,现在很多社会网站都有这个功能,用户输入土豆视频地址后,能找到对应的视频及视频的缩略图,有些社区网站还能获取到视频的时长。
比如:新浪微博就有这个功能,当用户输入视频网址后,就能获取到相应的视频地址及视频的缩略图。
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;

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


/**
* 获取土豆网视频
* @author sunlightcs
* 2011-3-31
* http://hi.juziku.com/sunlightcs/
*/
public class TudouTest {

	public static void main(String[] args) throws Exception{		
		Document doc = getURLContent();
		String content = doc.html();
		int beginLocal = content.indexOf("<script>document.domain");
		int endLocal = content.indexOf("</script>");
		content = content.substring(beginLocal, endLocal);
		
		String flashUrl = getScriptVarByName("iid_code", content);
		flashUrl = "http://www.tudou.com/v/" + flashUrl + "/v.swf";
		System.out.println("视频地址:"+flashUrl);
		
		
		String pic = getScriptVarByName("thumbnail", content);
		System.out.println("视频缩略图:"+pic);
		
		
		String time = getScriptVarByName("time", content);
		System.out.println("视频时长:"+time);

		
	}
	
	/**
	 * 获取script某个变量的值
	 * @param name  变量名称
	 * @return   返回获取的值 
	 */
	private static String getScriptVarByName(String name, String content){
		String script = content;
		
		int begin = script.indexOf(name);
		
		script = script.substring(begin+name.length()+2);
		
		int end = script.indexOf(",");
		
		script = script.substring(0,end);
		
		String result=script.replaceAll("'", "");
		result = result.trim();
		
		return result;
	}
	
	
	/**
	 * 获取土豆网页的内容
	 */
	private static Document getURLContent() throws MalformedURLException, IOException, UnsupportedEncodingException {
		Document doc = Jsoup.connect("http://www.tudou.com/programs/view/pVploWOtCQM/")
		  .data("query", "Java")
		  .userAgent("Mozilla")
		  .cookie("auth", "token")
		  .timeout(3000)
		  .post();
		return doc;
	}

}


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


   发表时间:2011-04-02  
有YOUKU的吗?
0 请登录后投票
   发表时间:2011-04-02  
土豆有连接数限制吗,比如我某个时间段之内分析上万个,会不会因此被拒绝
0 请登录后投票
   发表时间:2011-04-02  
之前都是用httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息,像截取字串来拿会不会如果多打了空格就数据不正确呢?
0 请登录后投票
   发表时间:2011-04-02  
我的SNS也是通过httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息!
实现了大部分视频网站的分享,网站地址:www.ijiangyin.com/dc_sns,欢迎大家提提意见
0 请登录后投票
   发表时间:2011-04-02  
wubaodong 写道
有YOUKU的吗?

有优酷的了,呵呵
http://juziku.iteye.com/blog/984220
0 请登录后投票
   发表时间:2011-04-02  
wang8118 写道
土豆有连接数限制吗,比如我某个时间段之内分析上万个,会不会因此被拒绝

如果在同一个时间内,分析上万个,可能会封IP了。
0 请登录后投票
   发表时间:2011-04-02  
maowei009 写道
之前都是用httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息,像截取字串来拿会不会如果多打了空格就数据不正确呢?

一般用jsoup来分析HTML代码了。
0 请登录后投票
   发表时间:2011-04-02  
头像就是楼主本人吗?
0 请登录后投票
   发表时间:2011-04-02  
laolinshi 写道
头像就是楼主本人吗?

NO
0 请登录后投票
论坛首页 Java企业应用版

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