爬虫系列学习之爬取西瓜视频

编程入门 行业动态 更新时间:2024-10-28 04:16:34

<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫系列学习之爬取西瓜视频"/>

爬虫系列学习之爬取西瓜视频

前段时间面试题目中居然出现了:破解西瓜视频地址,获取可直接下载视频的地址。

使用工具

  1. Python 3.7.0
  2. requests库
  3. re库
  4. base64库

分析过程

确定视频资源下载地址

由于之前没有这方面的项目经历,在网上查找资料后,这篇文章给了我灵感(原来西瓜视频上的Url是经过Base64加密的),那么是如何确定西瓜视频上的Url是经过Base64加密的呢?

  1. 这个字符串仅有64个字符(A~Z a~z + / )以及后缀=组成
  2. 将目标字符串解密后再将解密字符串加密回去与原来的值做比较如果相同就是Base64
import requests
import re
from base64 import b64decode, b64encodeurl = ''headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}resp =requests.get(url=url, headers=headers)ex = '''"main_url":"(.*?)"'''def doCheck(source):if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):return Truereturn Falseif doCheck(re.findall(ex, resp.text)[0]):print('该Url是Base64加密!!!')
else:print('该Url不是Base64加密!!!')
下载测试
import requests
import re
from base64 import b64decode, b64encodeheaders = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36'
}url = ''resp =requests.get(url=url, headers=headers)ex = '''"main_url":"(.*?)"'''def doCheck(source):if bytes(source, encoding='utf-8') == b64encode(b64decode(source)):return Truereturn Falsedef getVideoUrl(source):return b64decode(source).decode('utf-8')source =re.findall(ex, resp.text)[0]if doCheck(source):resp = requests.get(url=getVideoUrl(source), headers=headers)with open('./Video.mp4', 'wb') as fp:fp.write(resp.content)
else:print('该Url不是Base64加密!!!')
运行结果

更多推荐

爬虫系列学习之爬取西瓜视频

本文发布于:2023-07-04 06:39:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1019762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   西瓜   系列   视频

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!