Python爬虫第四战(使用防盗链下载视频)

本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。

防盗链的基本使用下载视频


前言

今天学习的主要是关于使用防盗链referer下载视频的知识的理解和应用


python 复制代码
# 1.拿到countId
# 2.拿到videoStatus返回的JSON.  -- >srcURL
# 3.srcURL里面的内容进行修整
# 4.下载视频

# 思路:
#    右击页面查看源代码,得到有效视频链接:https://video.pearvideo.com/mp4/short/20250327/cont-1799106-16048118-hd.mp4
# 通过f12查看接口信息获取:https://video.pearvideo.com/mp4/short/20250327/1744083258789-16048118-hd.mp4"
# 对比发现,真实的链接和接口拿到链接根本不一样,应该是做了加密处理,将接口链接中的数据1744083258789改成了cont-1799106,
# 而刚好发现1744083258789是接口数据中的systemTime,1799106是url链接中的最后一串字符串,
# 因此想办法先获取到接口中的视频链接和systemTime,使用.replace()方法来替换接口链接中的1744083258789

import requests
# 页面访问地址
url= "https://www.pearvideo.com/video_1799106"
# 获取url中的1799106,使用.split("_")来将链接分割成两段,拿第二个元素[1]
contid= url.split("_")[1]
# 访问此接口获取服务器返回的视频信息
videoinfourl = f"https://www.pearvideo.com/videoStatus.jsp?contId={contid}"
headers = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
#    防盗链,浏览器会根据这个来溯源是从哪个页面进入到这个页面的,如果不正确则返回为空
"referer": url
}
# 调用接口获取视频信息
resp = requests.get(videoinfourl,headers=headers)
# print(resp.text)

dic = resp.json()
# 获取视频链接和systemTime
srcUrl= dic['videoInfo']['videos']['srcUrl']
systemTime = dic['systemTime']
print(srcUrl,systemTime)
# 使用.replace()来将视频链接中的1744083258789改成cont-1799106
srcUrl = srcUrl.replace(systemTime,f"cont-{contid}")
print(srcUrl)
# 下载视频
with open("a.mp4",mode="wb") as f:
    f.write(requests.get(srcUrl).content)
    print("下载完成")


💕 原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

👍 点赞,你的认可是我创作的动力! \textcolor{orange}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

⭐ 收藏,你的青睐是我努力的方向! \textcolor{red}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

🥕 评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

相关推荐
Isaacingrid42 分钟前
解决pytorch-lightning1.6.0安装时自动下载最新的pytorch方法
人工智能·pytorch·python
爬虫程序猿44 分钟前
《爬虫实战指南:轻松获取店铺详情,开启数据挖掘之旅》
人工智能·爬虫·数据挖掘
树叶会结冰1 小时前
python中的推导式
python
悟纤1 小时前
Suno API V5模型 python源码 —— 使用灵感模式进行出创作
开发语言·python·suno·ai音乐
xt19892881 小时前
测试开发:Python+Django实现接口测试工具
python·测试开发·django·自动化平台
井云AI1 小时前
井云科技交互数字人:用技术普惠重构智能交互新范式
音视频·实时音视频·数字人·交互数字人·数字人口播·井云科技
Shun_Tianyou2 小时前
Python Day21 re模块正则表达式 简单小说爬取 及例题分析
开发语言·数据结构·python·算法·正则表达式
华科云商xiao徐2 小时前
Kotlin动态代理池+无头浏览器协程化实战
爬虫·tcp/ip·kotlin
melody_of_Canon2 小时前
使用 gptqmodel 量化 Qwen3-Coder-30B-A3B-Instruct
python·gptq量化
我想吃烤肉肉3 小时前
leetcode-python-删除链表的倒数第 N 个结点
python·算法·leetcode·链表