`
htj1231825
  • 浏览: 40135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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;
	}

}


其中要用到一个JAR包,下载地址如下:
http://jsoup.org/packages/jsoup-1.5.2.jar
分享到:
评论

相关推荐

    通过java获取土豆视频

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

    java获取视频

    本文将详细介绍如何使用Java语言来实现从土豆网获取视频数据的功能。 #### 二、技术选型与原理 要实现从土豆网获取视频数据,首先需要了解以下关键技术: 1. **HTTP 请求**: 为了获取视频信息,需要向土豆网发送...

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

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

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

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

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

    在Android开发中,获取视频的缩略图以及播放视频是常见的功能需求。这些功能涉及到多媒体处理和用户界面的交互。以下将详细介绍如何实现这两个功能。 首先,获取视频的缩略图通常是为了在应用中展示视频预览,提高...

    java 下载文件MMTYPE类型大全

    // 获取HttpServletResponse对象 response.setContentType(mimeType); response.setHeader("Content-Disposition", "attachment; filename=\"" + file.getName() + "\""); InputStream in = new FileInputStream...

    FFMpeg_Android.rar

    4. **编写Java代码**:在Android应用中,使用JNI接口调用FFmpeg的函数来执行具体的音视频处理任务。 5. **运行与调试**:在Android设备或模拟器上运行应用,测试多媒体处理功能是否正常。 在实际开发中,我们可能会...

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

    SDK允许开发者访问摄像头的视频流、控制摄像头的运动、调整参数设置等。通过这些接口,你可以创建自定义的监控系统、录像回放应用或者与其他系统的集成。 开发过程中,你需要熟悉以下技术: 1. 流媒体处理:摄像头...

    CustomGalleryLikeiPhone(3D相册)_Android.rar

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

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

    JavaWeb是Java技术在Web开发中的应用,它包括Servlet、JSP、JSTL等组件,用于构建动态网站。在这个项目中,SpringBoot作为JavaWeb开发的核心,负责处理HTTP请求、数据持久化、服务集成等。 **2. SpringBoot** ...

    202111126_opencv-2.4.10.7z

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

    MySQL数据库详细介绍

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

    文件下载类库

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

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

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

Global site tag (gtag.js) - Google Analytics