热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

新浪java视频_java解析sina视频

用一个例子来说明,比如这个http:video.sina.com.cnvb75314002-1648211320.html。用火狐打开,开启firebu

用一个例子来说明,比如这个http://video.sina.com.cn/v/b/75314002-1648211320.html。

用火狐打开,开启firebug,得到如下信息。

260e7f36121d7dc679aa4d07c98d4f3e.png

其中在这个请求

http://v.iask.com/v_play.php?vid=75314002&uid=1648211320&pid=478&tid=&plid=4001&prid=ja_7_3485822616&referrer=&ran=0.2936802236363292&r=video.sina.com.cn

中得到的响应有我们想要的xml信息,其中vid就是上面红色部分,uid后面的都可以忽略,我们在浏览器中直接输入http://v.iask.com/v_play.php?vid=75314002还是可以得到相同的信息。自此解析的思路就变清晰了,在视频链接中提取出vid,使用http://v.iask.com/v_play.php?vid=得到xml文件,解析xml文件就可以得到真实视频地址了。

下面的是解析xml的代码,使用sax解析xml。首先定义xml reader。

package hdu.fang.parser;

import hdu.fang.model.Video;

import java.util.ArrayList;

import java.util.List;

import org.xml.sax.Attributes;

import org.xml.sax.SAXException;

import org.xml.sax.helpers.DefaultHandler;

public class XMLSaxReader extends DefaultHandler {

private List videos = null;

private Video video = null;

private Long timeLength = null;

private String tag = null;

@Override

public void startDocument() throws SAXException {

videos = new ArrayList();

}

@Override

public void startElement(String uri, String localName, String qName,

Attributes attributes) throws SAXException {

if ("durl".equals(qName)) {

video = new Video();

}

tag = qName;

}

@Override

public void endElement(String uri, String localName, String qName)

throws SAXException {

if ("durl".equals(qName)) {

videos.add(video);

video = null;

}

tag = null;

}

@Override

public void characters(char[] ch, int start, int length)

throws SAXException {

if (tag != null) {

String data = new String(ch, start, length);

if ("timelength".equals(tag)) {

timeLength = Long.valueOf(data);

} else if ("order".equals(tag)) {

video.setOrder(Integer.valueOf(data));

} else if ("url".equals(tag)) {

video.setUrl(data);

} else if ("length".equals(tag)) {

video.setLength(Integer.valueOf(data));

}

}

}

public List getVideos() {

return videos;

}

public long getLength() {

return timeLength;

}

}

Video类是我自己定义的一个数据model。在主函数里我们只要调用sax工厂实例化解析器就行了。

SAXParserFactory sf = SAXParserFactory.newInstance();

SAXParser sp = sf.newSAXParser();

XMLSaxReader reader = new XMLSaxReader();

InputStream in_withcode = new ByteArrayInputStream(

xml.getBytes("UTF-8"));//xml就是刚得到的xml文件,类型String

sp.parse(in_withcode, reader);

videos=reader.getVideos();//得到Video List

timeLength=reader.getLength();//得到视频长度

System.out.println(videos);

在xml文件里还有很多其他信息,都可以解析出来,看自己需要了。



推荐阅读
  • 如何在Notepad++中执行Python代码
    Notepad++是一款功能丰富的文本编辑器,不仅支持多种编程语言的语法高亮显示,还提供了便捷的代码执行功能。本文将详细介绍如何在Notepad++中配置并运行Python代码。 ... [详细]
  • Java第四周作业:条件语句实践与分析
    本次作业主要围绕Java编程中的if语句展开,通过具体案例深入理解选择结构的使用方法。学生需要完成多个编程任务,并在博客中详细记录每道题目的题目、代码及运行结果。 ... [详细]
  • 整合百度UEditor编辑器于ASP后端的实现步骤与技巧
    随着微软停止对XP系统的支持,公司已全面升级至Windows 7。早期网站创建时使用的编辑器仅兼容IE6浏览器,而如今系统更新后,原有的编辑器已无法满足新环境的需求。本文详细介绍了如何将百度UEditor编辑器整合到ASP后端,包括实现步骤和实用技巧,确保网站在新系统下仍能高效运行并提供良好的用户体验。 ... [详细]
  • 尝试在数据库中查询数据并在datatables中异步显示时总是报错。有人帮我看下吗,好像是这个json的格式出问题,我看了firebug,应该是servlet返回的json数据格式问题,但因为新 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
  • 本文探讨了在多种编程语言中实现Hello World输出的方法,从经典的C语言到现代的JavaScript,每种语言都有其独特的表达方式。 ... [详细]
  • 开发笔记:小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
    开发笔记:小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表 ... [详细]
  • 作为一名计算机科学专业的大三学生,我在过去的一年里自学了Visual Basic (VB),但感觉进展缓慢。VB的学习是否仅仅局限于控件的使用?如何有效地学习API?此外,有人认为Basic语言已经过时,这对VB的未来意味着什么? ... [详细]
  • 如何在PHP中正确配置错误显示功能
    在PHP中正确配置错误显示功能的方法如下:首先,定位并打开“php.ini”配置文件;接着,将“display_errors”参数设置为“On”;最后,在PHP代码文件的顶部添加 `ini_set('display_errors', '1');` 以确保错误信息能够被正确显示。此外,建议在开发环境中启用此功能,而在生产环境中禁用,以避免敏感信息泄露。 ... [详细]
  • 开发工具WebDeveloper1.1.8https:addons.mozilla.orgen-USfirefoxaddon60以工具栏的形式对网页的(X)HTML、脚本、多媒体、 ... [详细]
  • 导读:今天编程笔记来给各位分享关于PHP的前端用什么工具的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 软件自动化测试的学习路线
    软件自动化测试的学习步骤软件测试交流群关注软件测试技术公众号获取阅读目录软件自动化测试的学习步骤自动化测试的本质自动化测试学习的误区自动化测试的职位自动化测试分类Web自动化 ... [详细]
  • 首先,我有点像jQuerynoob和整个PHPnoob,所以如果这是一个愚蠢的问题,我感到很抱歉(尽管我已经搜索了Internet,尤其是这个网站的上下无法弄清我的意思.错了).另 ... [详细]
author-avatar
小冰的大夢想
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有