`
sunlightcs
  • 浏览: 75144 次
  • 性别: 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;


/**
* 获取土豆网视频
* @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


分享到:
评论
18 楼 wubaodong 2011-04-13  
sunlightcs 写道
wubaodong 写道
有YOUKU的吗?

有优酷的了,呵呵
http://juziku.iteye.com/blog/984220


谢谢美女
17 楼 sunlightcs 2011-04-04  
KimShen 写道
我也是来看头像的。。。

16 楼 zhuixinjian 2011-04-03  
哇,这个头像是楼主本人。相册里面有两张不同角度的。
15 楼 KimShen 2011-04-02  
我也是来看头像的。。。
14 楼 springlys 2011-04-02  
sunlightcs 写道
guozq518 写道
laolinshi 写道
头像就是楼主本人吗?

做软件哪有这么PL的MM




既然头像不是楼主本人,何必把他作为你头像,搞的我现在心神不宁,罪过罪过
13 楼 sunlightcs 2011-04-02  
guozq518 写道
laolinshi 写道
头像就是楼主本人吗?

做软件哪有这么PL的MM

12 楼 java_jing 2011-04-02  
guozq518 写道
laolinshi 写道
头像就是楼主本人吗?

做软件哪有这么PL的MM


杯具啊~我们这倒是有个测试MM不错~
11 楼 guozq518 2011-04-02  
laolinshi 写道
头像就是楼主本人吗?

做软件哪有这么PL的MM
10 楼 sunlightcs 2011-04-02  
laolinshi 写道
头像就是楼主本人吗?

NO
9 楼 laolinshi 2011-04-02  
头像就是楼主本人吗?
8 楼 sunlightcs 2011-04-02  
maowei009 写道
之前都是用httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息,像截取字串来拿会不会如果多打了空格就数据不正确呢?

一般用jsoup来分析HTML代码了。
7 楼 sunlightcs 2011-04-02  
wang8118 写道
土豆有连接数限制吗,比如我某个时间段之内分析上万个,会不会因此被拒绝

如果在同一个时间内,分析上万个,可能会封IP了。
6 楼 sunlightcs 2011-04-02  
wubaodong 写道
有YOUKU的吗?

有优酷的了,呵呵
http://juziku.iteye.com/blog/984220
5 楼 zhouxi1987 2011-04-02  
我的SNS也是通过httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息!
实现了大部分视频网站的分享,网站地址:www.ijiangyin.com/dc_sns,欢迎大家提提意见
4 楼 maowei009 2011-04-02  
之前都是用httpclient去得到这些网页的内容,然后通过正则去匹配拿到相应的信息,像截取字串来拿会不会如果多打了空格就数据不正确呢?
3 楼 snow_rui 2011-04-02  
美女给力, 学习了
2 楼 wang8118 2011-04-02  
土豆有连接数限制吗,比如我某个时间段之内分析上万个,会不会因此被拒绝
1 楼 wubaodong 2011-04-02  
有YOUKU的吗?

相关推荐

    通过java获取土豆视频

    ### 通过Java获取土豆视频的关键知识点 #### 一、项目背景与目的 在当前互联网环境中,视频内容成为了信息传播的重要载体之一。对于开发者而言,能够有效地抓取和处理这些视频内容变得尤为重要。本示例主要介绍了...

    java获取视频

    通过上述代码示例,我们可以看到如何使用Java和Jsoup库来从土豆网获取视频数据。这种方法不仅可以帮助开发者快速构建具有视频预览功能的应用程序,还可以为用户提供更加丰富的互动体验。需要注意的是,在实际开发...

    基于Java的视频会议系统(程序)

    - **音视频采集与渲染**:通过Java API与硬件交互,获取和显示音视频数据。 - **带宽管理**:根据网络状况动态调整音视频流的质量,优化用户体验。 - **加密与安全**:使用SSL/TLS等加密技术保护数据传输的安全,...

    基于PHP的解析无广告土豆播放地址php版源码.zip

    该压缩包文件“基于PHP的解析无广告土豆播放地址php版源码.zip”包含的是一个使用PHP编程语言编写的程序,其主要目的是解析无广告的土豆视频播放链接。土豆网是一家提供在线视频服务的网站,但其视频播放时可能会带...

    实现获取视频的缩略图(ThumbnailUtils),并且播放_Android.rar

    2. 使用`ThumbnailUtils`类:这个类主要用于创建视频的缩略图,但需要注意的是,它并不直接从视频文件中提取,而是通过解码视频的一小部分生成缩略图。例如: ```java MediaExtractor extractor = new ...

    java 下载文件MMTYPE类型大全

    在Java中处理文件下载时,MIME类型(Multipurpose Internet Mail Extensions)是非常重要的概念。MIME类型是一种标准,用于定义不同类型的网络数据,如文本、图像、音频、视频等。它由两部分组成:类型和子类型,...

    FFMpeg_Android.rar

    1. **获取源码**:从FFmpeg官方网站下载源代码,或者通过Git克隆仓库。 2. **配置编译**:使用Android NDK进行交叉编译,配置编译选项,确保编译出适用于Android平台的静态或动态库。 3. **创建JNI接口**:通过Java ...

    雅奇大师版 官方网站下载

    通过阅读这份文档,用户可以获得关于如何使用雅奇大师版的详细信息,解决在使用过程中遇到的问题。 在编程领域,易用性是非常重要的一个方面,"雅奇大师版"的出现无疑为编程新手提供了一个友好的学习平台。它降低了...

    海康威视摄像头二次开发用到的web开发包

    通过这些接口,你可以创建自定义的监控系统、录像回放应用或者与其他系统的集成。 开发过程中,你需要熟悉以下技术: 1. 流媒体处理:摄像头的视频流通常以RTSP(Real Time Streaming Protocol)或HTTP流形式提供,...

    CustomGalleryLikeiPhone(3D相册)_Android.rar

    8. **多媒体处理**:可能涉及到音频或视频的播放,使用了Android的MediaStore API来获取设备上的媒体文件。 9. **文件系统**:理解和操作Android的文件系统,以读取和保存图片或应用数据。 10. **版本控制**:项目...

    JavaWeb网页,vue+springboot+mybatisplus,老年管理平台

    - **当前时间和登录时长展示模块**:Vue.js可以轻松获取和更新当前时间,通过SpringBoot记录用户登录时间,计算登录时长。 - **聊天框模块**:可能使用WebSocket实现即时通讯,Vue.js处理前端消息显示,SpringBoot...

    202111126_opencv-2.4.10.7z

    OpenCV(Open Source Computer Vision Library)是一个开源项目,它提供了大量的接口,支持C++、Python、Java等多种编程语言。这个库被广泛用于图像处理、机器学习、计算机视觉和人工智能应用中,包括人脸识别、物体...

    文件下载类库

    FinalHttp 是一个轻量级的Java和Android网络请求框架,由尹吉欢开发。它主要提供HTTP请求和文件下载的功能,旨在减少开发者在网络编程上的复杂性。FinalHttp 支持自动处理重定向、gzip解压、Cookie管理等特性,并且...

    MySQL数据库详细介绍

    对于想要深入学习MySQL的用户,网络上有丰富的教程和资源可供参考,比如可以在土豆网等平台上找到MySQL数据库的学习视频教程。 以上内容涵盖了MySQL的基本概念、特点、应用场景以及相关的工具和资源,希望能帮助...

    基于SSM框架+Mysql的企业CRM客户关系管理系统项目源码+数据库+项目说明.zip

    项目视频上有错误,查询市场活动的sql语句中的limit后面应该用${beginNo},${pageSize},而不是#{}.此外limit的起始索引应该为0,而不是1 2. vue中调用钩子函数beforeMount(),在页面渲染之前向服务器发送axios...

Global site tag (gtag.js) - Google Analytics