记一次li视频播放地址寻找(超级详细,适合小白)
前提:第一次发帖,如有违规,希望版主大人宽容,谢谢
本人亦是新手小白,望大神手下留情
语言艺术缺乏,接下来的文字或许无尽枯燥,乏味.
分析:
话不多说,直奔主题
1.打开视频主页,随便找个视频观察,vu参数就是我们今天的猪脚,而且还没加密,我们的目的就是要搞清楚
它是怎么来的?
https://attach.52pojie.cn//forum/202011/21/001315b24s3fq23431qneq.png?l
2.搜索vu,下断点,发现vu=t
https://attach.52pojie.cn//forum/202011/21/001321ey2nd2ynhrvpi2ab.png?l
3.往上寻找t,发现t=d对象下的一个什么东东地址,而d有定义成了player.XXXX,再往上追溯
,接下来是各种对象过去,对象过来的,哎,枯燥的JS,头痛(这里就不演示了)
https://attach.52pojie.cn//forum/202011/21/001325c22ihwiwihohedvi.png?l
4.继续往上寻找,这个是神马?阿里云播放器Aliplayer,如果要调用它,肯定是有蛛丝马迹的嘛
https://attach.52pojie.cn//forum/202011/21/001330wpanydd8syy85nyc.png?l
5.我们搜索调用Aliplayer的关键字new Aliplayer,你看,还真有
https://attach.52pojie.cn//forum/202011/21/001335zz4k4m57l7cmzo7t.png?l
6.它传入的地址,就是我们要找的,但是-source又是个神马鬼?它定义了一个newPrismXXX的函数,那我们
看看是怎么调用的?
https://attach.52pojie.cn//forum/202011/21/001340ugnbsp9nvz513pj6.png?l
7.搜索newPrismXXX,我们来到了这里,一个$(function(),页面加载就自动运行了,接下来一个ajax请求,
我们注意data,既然有个请求,我们就去看看吧
https://attach.52pojie.cn//forum/202011/21/001801zo6hu34juzhes4lp.png?l
8.果然我们来到了这里,返回的json里果然也有一个XXXX.mp4,只是很可惜,不是我们想要的,这又是什么鬼?
https://attach.52pojie.cn//forum/202011/21/001345wwc555glg5rkhr5s.png?l
9.我们继续回来这个,replace?这个,就TM一个替换
https://attach.52pojie.cn//forum/202011/21/001349r2ks0eeszlckpcnh.png?l
总结:现目前它的播放地址其实就是服务器返回,再经过一个替换得到的
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()
最后
码字不易,望能博君一笑,至此游戏结束 谢谢分享,我这脑瓜子看了这个脑袋疼{:1_907:} 极速浏览器按F12,看代码,按大小排序就看见了。 嗯嗯嗯嗯 好好学习下 纯技术贴,感谢分享! 学习了,感谢分享 {:300_952:}码字不易 感谢分享 不错,一看就会了,哈哈 进来学习了,感谢楼主分享
页:
[1]