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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

相关推荐
leihefeng6 小时前
手写数字识别:KNN vs 逻辑回归实战
python·算法·机器学习·逻辑回归·scikit-learn
SunnyDays10116 小时前
如何使用 Python 从 Word 文档中提取图片
python·word
2601_962097366 小时前
Pathway 实时RAG新方案:抛弃Spark、Flink,生产级数据管道
python·流处理·大数据集群·实时rag·pathway
三十岁老牛再出发6 小时前
9月3日总结
python
Mr数据杨7 小时前
【Codex】接入音频转录服务实现课堂语音结构化处理
django·音视频·codex·项目开发
2601_962299887 小时前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令
IT毕设实战小研7 小时前
基于大数据的DAX40成分股金融新闻情感趋势可视化分析
android·大数据·python·考研·金融·课程设计
三十岁老牛再出发7 小时前
8月27日总结
python·pandas
砚底藏山河7 小时前
【量化纯GET实战 #21】用 pandas 做分析:把接口数据变成 DataFrame
java·python·金融·maven·pandas
Carl_奕然7 小时前
【智能体】Agent的四种设计模式之:React(2026最新版)
javascript·人工智能·python·react.js·设计模式·语言模型