好友
阅读权限25
听众
最后登录1970-1-1
|
前提:
第一次发帖,如有违规,希望版主大人宽容,谢谢
本人亦是新手小白,望大神手下留情
语言艺术缺乏,接下来的文字或许无尽枯燥,乏味.
分析:
话不多说,直奔主题
1.打开视频主页,随便找个视频观察,vu参数就是我们今天的猪脚,而且还没加密,我们的目的就是要搞清楚
它是怎么来的?
2.搜索vu,下断点,发现vu=t
3.往上寻找t,发现t=d对象下的一个什么东东地址,而d有定义成了player.XXXX,再往上追溯
,接下来是各种对象过去,对象过来的,哎,枯燥的JS,头痛(这里就不演示了)
4.继续往上寻找,这个是神马?阿里云播放器Aliplayer,如果要调用它,肯定是有蛛丝马迹的嘛
5.我们搜索调用Aliplayer的关键字new Aliplayer,你看,还真有
6.它传入的地址,就是我们要找的,但是-source又是个神马鬼?它定义了一个newPrismXXX的函数,那我们
看看是怎么调用的?
7.搜索newPrismXXX,我们来到了这里,一个$(function(),页面加载就自动运行了,接下来一个ajax请求,
我们注意data,既然有个请求,我们就去看看吧
8.果然我们来到了这里,返回的json里果然也有一个XXXX.mp4,只是很可惜,不是我们想要的,这又是什么鬼?
9.我们继续回来这个,replace?这个,就TM一个替换
总结:现目前它的播放地址其实就是服务器返回,再经过一个替换得到的
python代码:
1.要注意的一点就是,headers里面必须带Cookie,Referer,不然返回的是视频下架
2.我就以视频ID=1707741为例,贴上python源码from random import random
import requests
class player:
url = 'https://www.xxxx.com/video_1707741'
url1 = 'https://www.xxxx.com/videoStatus.jsp?contId=1707741&mrd='+str(random())
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
}
headers1 = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
'Referer': 'https: // www.xxxx.com / video_1707741'
}
contAndId = "cont-1707741"
def __init__(self):
self. req = requests.session()
def geturl(self):
res= self.req.get(url=self.url,headers=self.headers)
if res.status_code==200:
res1 = self.req.get(url=self.url1, headers=self.headers1).json()
srcUrl=res1['videoInfo']['videos']['srcUrl']
systemTime = srcUrl.split('/')[-1].split('-')[0]
vdoUrl= srcUrl.replace(systemTime, self.contAndId)
print(vdoUrl)
run = player()
run.geturl()
最后
码字不易,望能博君一笑,至此游戏结束 |
-
3.png
(74.74 KB, 下载次数: 1)
-
4.png
(71.13 KB, 下载次数: 0)
-
5.png
(152.09 KB, 下载次数: 0)
-
6.png
(37.91 KB, 下载次数: 0)
-
7.png
(35.42 KB, 下载次数: 2)
-
8.png
(41.8 KB, 下载次数: 0)
-
10.png
(80.62 KB, 下载次数: 0)
-
11.png
(111.21 KB, 下载次数: 0)
-
9.png
(52.04 KB, 下载次数: 0)
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|