先说一下问题描述:
想做个视频网站里边的视频下载功能,不登录,直接可以下载,优酷下已经验证了可以找到当前网页下的视频(参考http://blog.csdn.net/duhaomin/article/details/17556235),而在土豆上测试的时候,明明视频已经能够播放了,可是就是死活找不到播放的视频,现在终于找到了,记录一下寻找的过程,为也遇到这个问题的朋友留下一点帮助信息。
接下来详细说一下我的寻找过程吧:
在土豆上:这个链接http://www.tudou.com/listplay/xVetkPqJijQ/UQwNsJPm9gU.html
使用Adkill,结果为:
可以看到,仅仅找到了播放视频使用的flash播放器portalplayer_72.swf,但是却找不到这个真正的视频,为什么呢?
使用三个请求和响应前的监听:
chrome.webRequest.onBeforeRequest.addListener
chrome.webRequest.onResponseStarted.addListener
chrome.webRequest.onBeforeSendHeaders.addListener
进行监听,将传入的数据的url打印(打印方法是调用js的日志函数console.log()):
通过Ctrl+F寻找视频:"flv","hlv","f4v","mp4","mp3","wma","swf",可是都没有找到想要的内容,这是为什么呢?之后使用wireshark进行抓包:
由于一个视频最终是使用TCP经过三次握手后,才能将视频流时刻的获取,所以我先在优酷里边找规律:
每经过三次握手后,确定可以连同了,发送一个http的get视频请求后就可以开始实时获取视频数据包了,那么土豆肯定也是这样,毕竟这是网络基本的内容,但是为什么跟优酷不一样呢?接下来:
准备好一个新打开的wireshark,打开浏览器,将刚才那个视频地址输入(为了控制变量,必须将多数设定为相同参数),先不要回车,此时开始wireshark并使用HTTP进行过滤,将刚才视频开始播放,待真正的视频开始播放了,停止wireshark(防止太多的信息不容易操作,也可以不停止),之后肉眼寻找一下可能的视频(我们找的数量越少越好,所以刚才把wireshark停止了,因为这个视频的HTTP请求必然在播放前发送的),果然找到了:
明明能够找到,为什么同样的原理Adkill就不能找到了呢?同样我使用js的日志函数,跟之前一样,打印一下url,之后Ctrl+F,居然没有找到!!!
肉眼都找到了,可是自动寻找为什么找不到?很不解,难道是chrome提供的事件函数不准确或者还有其他可能的函数?之后做了猜想:
如果发送请求视频HTTP,必然会用到它的IP地址:119.167.142.135,Ctrl+F呗,没有找到那个视频,是不是打印函数输出的内容被转码了所以查不到呢?之后查了一下ASIIC码表:http://baike.baidu.com/view/15482.htm
视频格式f4v = f%34v,继续Ctrl+F,还是没有!
那么我就继续找这个视频HTTP里边的183772970试试呗,找到了,但是变成了183772970.h264就又没有了,这是为什么?此时多数都会很着急,明明存在啊!!!
于是我想到,既然这条找不到,那么找到它的下一条,那么这条离找到的位置就不会远,基于此,我看了下下一条的信息:
在输出的Console里边找:
Ctrl+F寻找 pepper_sys?&seq=4:
之后向前找找,依然找不到,难道Ctrl+F是在当前显示的里边寻找而不是实际上的内容吗?(你会看到,即使内容很长,它显示的也很有限,将中间一部分使用省略号省略显示了),再仔细看看这个显示的内容,看到上边那个图片的最右边了吗?那个不就是需要找的那条请求的前半部分吗?有个f4v!!!
文章发表后发现上边这个图片右边看不到,需要将图片单独拖出去才能看到,所以单独将右边截图了一下:
将这个链接复制后在记事本中查看一下:
http://logs.live.tudou.com/logs/pepper_sys?&seq=4&myid=61BBC1A5-8670-9C15-9FF7-2CC3680985C3&source_id=10000&v=4.2.2&chan=d64704079b9cf3466d688754b28296ca&seg=Success|0|200%20OK|http://119.167.142.135/f4v/70/183772970.h264_2.040003010052BA6B4B477CBF3FF0337EA59D9C-5DE1-8F7C-DDC5-000189122327.f4v?10000&key=50bb025d55791beb88c8d752bb95b90040931816b8&playtype=3&tk=183835793311051012410234806&brt=3&bc=0&nt=0&nw=1&bs=0&ispid=12&rc=200&inf=12&si=un&npc=3695&pp=0&ul=2&mt=0&sid=10000&pc=1&cip=61.48.214.155&xid=040003010052BA6C02477CBF3FF0337EA59D9C-5DE1-8F7C-DDC5-000189122327&id=tudou&hf=0&hd=3&sta=0&ssid=0&itemid=189122327&fi=0&sz=4972930|
【注意,本博文内容仅供学习交流使用,请勿用于侵害他人利益】