java 优酷视频缩略图_通过正则表达式获取优酷视频缩略图
优酷并不像youtube那样提供获取缩略图的API,要获取优酷缩略图,一种方法是用ffmpeg直接读取上述网站的某个视频,然后截取其中的某帧作为该视频的缩略图;另外一种方式则是想办法读取网站自身提供的视频缩略图。前者需要安装ffmpeg,暂时没有办法测试。所以选用第二种方法,通过正则表达式获取优酷自身提供的视频缩略图。
如何获取function get_youku_thumb($url) {
$content = file_get_contents($url);
preg_match( '/id="s_msn2".*?screenshot=(.*?)".?target=/', $content, $matchs );
return $matchs[1];
}
echo get_youku_thumb('http://v.youku.com/v_show/id_XMjkwMjg5MDQw.html');
运行上述代码,获取的图片路径是//output
http://g2.ykimg.com/01270F1F464F50877DA3960123193C0A16F2D8-447A-D539-840F-E8AC55D15507
这种方法是在网上发现的,原出处是用PHP获取优酷、土豆视频缩略图,不过正如文章作者所说,一旦优酷改变网页结构,代码也得跟着变。这篇文章中的方法已经无法获取缩略图了, 所以写了上面的代码。
思路与原作者是相同的,通过读取优酷视频网页的代码,找到分享到社交网站(新浪、msn等)的代码,看看这部分是怎么写的,用正则表达式匹配。我使用的是转发到msn的代码,如下
改善一下可读性,就变成下面这样
href="http://profile.live.com/badge/?
url=[视频网址]
&Title=[视频标题]
&swfurl=[swfurl]
&screenshot=[缩略图地址,我们需要的部分]" target="_blank">
有了这个结构,就可以写正则表达式匹配了。如果优酷更新结构,可以按照同样的方法更新正则表达式。但还是希望优酷能像youtube那样多一些API,方便开发者。
把过去的图片WordPress的缩略图,可以将获取缩略图的代码做成shortcode,直接在文章中调用。也可以通过custom_field方式记录优酷视频地址,在主循环中调用该函数获得缩略图,借助timthumb.php等脚本生成缓存存放到本地,就不用每次都去读网页了。
2012-08-04更新
发现有人已经做了现成的库可以调用,大家到这里获取。
java 优酷视频缩略图_通过正则表达式获取优酷视频缩略图相关推荐
- java照片切换播放音乐_怎么将照片制作成视频并添加音乐呢
目前在网上刷抖音和快手等短视频都能看到一种风格的视频,那就是电子相册视频.也就是把所有的图片放在一起,然后使用软件将图片变成视频播放出来.其实这些使用软件都会非常简单的.这种视频编辑功能不管在手机端还 ...
- python 腾讯视频签到_云函数实现腾讯视频vip自动签到
云函数实现腾讯视频vip自动签到 不用每天都去手动签到啦,属实懒人操作.一 次设置可一直使用,除cookie过期需手动更新外. 教程比较细,纯手打,按教程来一般都没问题.如果在有什么地方不懂问我就行. ...
- java正则匹配英文句号_「正则表达式」王国奇遇记
第一回 初来乍到 NPC: "欢迎来到正则表达式的国度,勇士!这里的每一个人都使用正则表达式,我是这里的 NPC,每一个来到这里的人都将由我代为介绍正则世界的规则,至于能领悟到何种境界,就看 ...
- java正则匹配英文句号_谈谈正则表达式中的句号.
我们知道,正则表达式中,可以用 . 表示任意单个字符,但在underscore和jquery的源代码中,我们可以看到,这些著名类库的代码中,经常并不是用 . 来表示任意字符,而是使用 [\w\W] 或 ...
- java中jsoup编译网络_使用jsoup获取网络数据
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出 ...
- python炫酷特效代码_推荐几个炫酷的 Python 开源项目
推荐几个炫酷的 Python 开源项目 项目一: Supervisor 简介: Supervisor 是实际企 业常用的一款 Linux/Unix 系统下的一个进程管理工具, 基于 Python 开发 ...
- python截取关键字后的字符串_使用正则表达式获取python中特定字符串之后的所有内容...
如果要使用正则表达式,请使用re.findall:re.findall('(?<=com/).*$', "www.example.com/thedubaimall") # [ ...
- java动作监听退出程序_监听获取程序退出事件(Linux、Windows、Java、C++)
监听程序退出事件,主要是用于程序的优雅退出. 下面针对Java.C++在Windows.Linux下的处理分别进行介绍. 1.Java监听程序退出事件 Java本身是跨平台的,不必关系Windows还 ...
- 小学计算机辅导计划,【小学信息技术培优补差计划】_小学信息技术培优补差计划...
小学信息技术培优补差计划 我的博文 小学信息技术培优补差计划 发布人:凌渌笑 日期:2011-09-21 阅读392次 小学信息技术培优补差计划 一.指导思想 为顺利完成本学期的教学任务,提高本学期的 ...
- java 取pdf 文本域_使用PDFBox获取文本行的位置
一般而言 要使用PDFBox提取文本(带或不带位置,颜色等额外信息),可以实例化 PDFTextStripper 或从中派生的类,并使用它: PDFTextStripper stripper = ne ...
最新文章
- QIIME 2用户文档. 14机器学习预测样品元数据分类和回归q2-sample-classifier(2018.11)
- 皮一皮:论北方有多冷...
- java调用存储过程
- MyBatis--连接池模块
- /etc/passwd 与 /etc/shadow文件的区别
- 刷新页面 数组轮播
- 如何在golang http服务端程序中读取2次Request Body?(转)
- c语言第八章函数程序设计,C语言程序设计-第八章 函数.ppt
- PyTorch系列入门到精通——生成对抗网络一瞥
- 2020华为软件精英挑战赛-有向图找环
- jQuery学习_具备吸附功能的拖曳框
- fakeroot: preload library `libfakeroot.so' not found, aborting.
- 递归算法php,php递归算法经典实例
- 不定期备考小tips[常微][2] #20210528
- linux nvidia显卡驱动安装教程,LINUX的NVIDIA显卡驱动安装
- 计算机桌面设置,电脑怎么设置动态桌面
- 服务器配置443端口报错
- React爬坑之路二:Router+Redux
- Vue3+node.js网易云音乐实战项目(五)
- JS中children与childNodes的区别