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

【爬虫】案例-获取cbh电影

以cupfox.in为例子:

 

 观察ts文件和m3u8文件,可以知道一个完整的视频是由多个ts文件组合,而m3u8则是记录所有ts文件信息的文本

 思路

1.先爬一个ts,测试能否观看

2.爬m3u8文件,通过正则分析出变化的部分

3.完整的把每个ts爬下来组合起来。

 

1.一个ts

import requestsurl = 'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/819a23c20b1000173.ts'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', 'referer':'https://www.cupfox.in/'}
response = requests.get(url)print(response.status_code)with open('video.ts', 'wb') as f:f.write(response.content)

 

 2.观察m3u8文件内容

分析得出:819a23c20b1000(.*?).ts

 

 3.完整代码:


import re
import requests
import time
import random
def get_m3u8():'''获取m3u8文件'''url = 'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/index.m3u8'resp = requests.get(url).text# print(resp)ts_list = re.findall('819a23c20b1000(.*?).ts', resp)return ts_list
def get_response(ts_list):for ts in ts_list:url = f'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/819a23c20b1000{ts}.ts'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36', 'referer':'https://www.cupfox.in/'}response = requests.get(url, headers=headers)try:with open('video.ts', 'ab') as f:f.write(response.content)print(f'下载完成,{ts+1}/{len(ts_list)}')time.sleep(random.uniform(1, 2))except Exception as e:print('报错原因是',e)if __name__ == '__main__':'''关键词.m3u8,它是一个文本文件,里面包含了多个ts'''a = get_m3u8() # 通过分析得出   # ts_list = re.findall('819a23c20b10(.*?).ts)', resp)get_response(a)

成功拿到,时长正确:

http://www.dtcms.com/a/162888.html

相关文章:

  • 23G显存可以跑多大尺寸的Qwen3?
  • JavaSE第12篇:接口interface
  • Java练习2
  • 解决 Flutter 在 iOS 真机上构建失败的问题
  • 9.idea中创建springboot项目
  • Javascript 中的继承?如何实现继承?
  • docker-vllm运行大模型
  • 高翔视觉slam中常见的OpenCV和Eigen的几种数据类型的内存布局及分配方式详解
  • 从代码学习深度学习 - 目标检测前置知识(一) PyTorch 版
  • 5.4.2 MVVM例2-用户控件的使用(水在水管中流动的实例)
  • 快速了解Go+rpc
  • MATLAB画一把伞
  • React Three Fiber 详解:现代 Web3D 的利器
  • Vue3取消网络请求的方法(AbortController)
  • jmeter-Beashell获取http请求体json
  • Flutter:组件10、倒计时
  • python如何流模式输出
  • rsync命令详解与实用案例
  • SQLyog中DELIMITER执行存储过程时出现的前置缩进问题
  • 全局id生成器生产方案
  • 23种设计模式-行为型模式之中介者模式(Java版本)
  • 【C++】模板为什么要extern?
  • Cursor —— AI编辑器 使用详解
  • PDF Shaper v15.0
  • vscode chrome调试怎么在所有浏览器都好使
  • 客运从业资格证考试科目有哪些
  • 1.1探索 LLaMA-Factory:大模型微调的一站式解决方案
  • RabbitMQ Linux 安装教程详解
  • 双系统,bios默认设置启动ubuntu+ubuntu改启动grub设置
  • 【仿真】Ubuntu 22.04 安装MuJoCo 3.3.2