目录标题
- 前言
- 第三方模块:
- 环境介绍:
- 基本流程:
- 代码展示
- 尾语
前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
第三方模块:
- requests >>> pip install requests
第三方模块安装:
win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)
环境介绍:
-
python 3.8 解释器
-
pycharm 编辑器
-
ffmpeg 可能会用到
python资料、源码、教程\福利皆: 点击此处跳转文末名片获取
基本流程:
一. 思路分析
找到数据 从网站当中找到视频链接
中视频平台: 一般情况下会将 视频和音频分割出来进行存储
通过network进行网络资源抓包
pachong : 模拟成 浏览器 向 服务器 发送网络请求
视频链接是属于 动态加载 还是属于 静态加载(网页源代码里面) 的
二. 代码实现
代码展示
import requests # python当中的一个浏览器 可以用来访问网站
import re
import json
import base64
headers = {
'Cookie': 'sid_guard=d75c6025dd5f4e3d658be37aad5f91b5%7C1677067151%7C3024000%7CWed%2C+29-Mar-2023+11%3A59%3A11+GMT; odin_tt=5529039b6eb72ae52e2705d0db550fc06655c83bdbe61914be61c42152989c387a55ad2fa056636bfd1f880a86407f88; ixigua-a-s=1; support_webp=true; support_avif=true; csrf_session_id=4aec69b08691b790189c8b248714eeb5; MONITOR_WEB_ID=8d5f04e0-fe22-47a6-a491-b16fa6947d63; s_v_web_id=verify_ljjyg5tm_onV1WDIr_W0td_4OWn_8Dxc_yi4nDyEV00P3; tt_scid=CUye1APb.OrVFVBYP9BhW587ktUuX80p4KzLPp4KB9RC0b4vM1hcyrwh5zEvq-ot29da; ttwid=1%7CiWx9zpr2eLSL5pxwfW7PdpTasAnL2Tszm5jFlS0A_ac%7C1688214212%7Cb22f4e9514377bc454dd02a9262cadc073f14300f54ede490d1b9a528c799694; msToken=zUmUE0heLzj53ENffW0IRXitBj8ZUNxGOjQWmCOZ7ugnhYbHv6RQ99sZb7S0FpGklhOgCaJXOPX7sI_i7hQZDz5QrWCbvNAG1TCoN2PV8JMJN-MoB1PRd5WiKG_Saw==; __ac_nonce=064a0294100c1af6780ef; __ac_signature=_02B4Z6wo00f010CZCwAAAIDCI5PLa7.s4WNAuQ-AALSRXWZ35dr6rDE3nUJMAieLsp4cgaPQ9ZLvZRXO4qPaH2oawPPT15w48KTLYDP83i56VU5eFpN7Zdc1eFrF8V6pKVa1A-9I72R.caDUbb; __ac_referer=https://***7241058661433508387?logTag=234b8549f4f57a8e4564',
'Referer':'https://*****/7241058661433508387?logTag=234b8549f4f57a8e4564',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}
url = 'https://*****/7241058661433508387?logTag=234b8549f4f57a8e4564'
# 先访问到网站 并且拿到网页源代码
response = requests.get(url=url, headers=headers)
# 防止中文出现乱码
response.encoding = 'utf-8'
html_data = response.text
# print(html_data)
# 将 window._SSR_HYDRATED_DATA= 和 </script> 中间的所有内容取出来
json_str = re.findall('window._SSR_HYDRATED_DATA=(.*?)</script>', html_data)[0]
json_str = json_str.replace('undefined', 'null')
print(json_str)
# 将json字符串转为python字典
json_dict = json.loads(json_str)
# main_url -> video_4 -> video_list -> normal -> videoResource -> video -> packerData
# gidInformation -> anyVideo
video_url = json_dict['anyVideo']['gidInformation']['packerData']['video']['videoResource']['normal']['video_list']['video_4']['main_url']
# print(video_url)
video_url = base64.b64decode(video_url).decode()
print(video_url)
# 保存视频
video_data = requests.get(video_url, headers=headers).content
open('1.mp4', mode='wb').write(video_data)
print("下载完成")
尾语
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。