当前位置: 首页 > news >正文

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

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

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

  • 前言


前言

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


# 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()方法来替换接口链接中的1744083258789import 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}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

相关文章:

  • Redux部分
  • 关于postman的使用(一)
  • JVM知识
  • oracle数据库单个表空间达到32G后程序报错表空间不足问题排查、处理
  • LeetCode详解之如何一步步优化到最佳解法:27. 移除元素
  • ubuntu20.04 Android14编译环境配置
  • Spring中IOC的重点理解(笔记)
  • Dify智能体平台源码二次开发笔记(6) - 优化知识库pdf文档的识别
  • 如何处理Python爬取视频时的反爬机制?
  • OTP认证系统解析与安当ASP身份认证解决方案
  • 全面排查与修复指南:MSVCP140.dll丢失的解决方法
  • 基于骨骼识别的危险动作报警系统设计与实现
  • Tomcat与Servlet
  • 第一层、第二层与第三层隧道协议
  • windows虚拟机隐藏“弹出虚拟驱动”
  • SpringBoot整合Logback日志框架深度实践
  • WPF依赖注入IHostApplicationLifetime关闭程序
  • JS调用Android接口有几种方式
  • Java HTTP Client API详解
  • 奥创中心卸载工具Armoury Crate Uninstall Tool官网下载
  • wordpress男同/淘宝关键词优化怎么弄
  • 三亚今天最新通知/爱站网站长seo综合查询工具
  • 网站没有备案做竞价吗/网络营销网络推广
  • 怎么免费建个免费的站点/企业培训课程清单
  • 可信赖的网站建设案例/品牌营销策划培训课程
  • 韶关网站建设第一品牌/如何制作一个网页链接