【Python爬虫】之西瓜视频地址解密20210822

目录

前言

         代码


前言

最近找工作需要看一些面试看,无意间看到有个题说是要获取一个链接里面的视频地址。链接:https://www.ixigua.com/i6704446868685849092

兴趣来了,抵挡不住这股冲动,点进去链接一看,= =!居然是小猪佩奇!!

 罢了,小猪佩奇就小猪佩奇吧,整就完事了。先右键检查元素看一眼

http://v9-xg-web-s.ixigua.com/1b92afae1bebac684f789947b67997f7/612222ea/video/tos/hxsy/tos-hxsy-ve-0004/ea23264f8ee34edea9f8fa1f231b2e8b/?a=1768&br=182&bt=182&cd=0%7C0%7C0&ch=0&cr=0&cs=0&cv=1&dr=0&ds=1&er=0&ft=C~FtpKHH_Mv_8.Cklg31r5CYj9-w&l=02162962324923500000000000000000000ffff0a97535e45425e&lr=default&mime_type=video_mp4&net=0&pl=0&qs=0&rc=amYzZjg1cWdpbjMzZzczM0ApZzo5ZWg8ZWQ5NzQ2Njs3aGdrc3Eyby9jYzJfLS01LTBzczAtYmAxLWAuYjZgMzRiMS06Yw%3D%3D&vl=&vr=

发现这个视频地址就是我们想要的。去相关返回里面找,发现并没有。也搜不到 。这时候我一眼看出来这个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)

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值