目录
前言
最近找工作需要看一些面试看,无意间看到有个题说是要获取一个链接里面的视频地址。链接:https://www.ixigua.com/i6704446868685849092
兴趣来了,抵挡不住这股冲动,点进去链接一看,= =!居然是小猪佩奇!!
罢了,小猪佩奇就小猪佩奇吧,整就完事了。先右键检查元素看一眼
发现这个视频地址就是我们想要的。去相关返回里面找,发现并没有。也搜不到 。这时候我一眼看出来这个url地址有一段参数是经过base64编码的。那么这是一个突破口,百度找了下base64原生js的代码,找出一段特征码来,如下:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
然后搜一下
还真是,点进去,在decone下断点和return的地方下断点
然后,然后居然就直接出来了,把链接复制出来放到游览器打开确实是小猪佩奇,那么现在只需要看这个e是从哪里来的,同样,先搜一波
发现一大对,点进去瞅瞅看。
好家伙,直接是服务器返回的。那么就没有然后了。西瓜视频简直太儿戏了。
当然还有其他的办法可以破解,这只是一种思路,供大家参考!下面附上代码
代码
import base64
import re
import requests
def getUrl(url: str):
headers = {
"Connection":"keep-alive",
"Cache-Control":"no-cache",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Sec-Fetch-Dest":"document",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36",
"Referer":"https://www.ixigua.com/6704446868685849092",
#"Cookie":"__ac_nonce=06122217b0057aec2e7ce; __ac_signature=_02B4Z6wo00f01HiyszAAAIDBG7hzW.3penR4kreAAH8W6f; __ac_referer=__ac_blank; ttcid=5d55ea80f73040bc8f7c1211ed58458a48; MONITOR_WEB_ID=50984067-b35f-484a-a7dd-bed58d13bc71; ttwid=1%7Cb3BvZjY5ybfG0cQfXCc00jjr8rQnM8aSZL8WE6BdLu8%7C1629626748%7C14ca7b64258bf402324c3cdee546221029a261bb6a3a3d34fe353682f41e49a2"
}
session = requests.session()
# 需要先访问一次视频网站获取cookies才行
session.get(url,headers=headers)
result = session.get(url + "?wid_try=1",headers=headers)
# result.encoding = "UTF-8"
# 只取720P
it = re.search(r'definition":"720p"[\s|\S]*?main_url":"(?P<main_url>.*?)"',result.text,re.S)
ret = base64.b64decode(it.group("main_url"))
return ret
url = "https://www.ixigua.com/6704446868685849092"
result = getUrl(url)
result = str(result).replace(r".\xd3M\x85","?")
print(result)