qidao123.com技术社区-IT企服评测·应用市场

标题: 【爬虫】案例-获取cbh影戏 [打印本页]

作者: 泉缘泉    时间: 2025-5-5 19:46
标题: 【爬虫】案例-获取cbh影戏
以cupfox.in为例子:


 

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

1.先爬一个ts,测试能否观看
2.爬m3u8文件,通过正则分析出变革的部门
3.完整的把每个ts趴下来组合起来。
 
1.一个ts

  1. import requests
  2. url = 'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/819a23c20b1000173.ts'
  3. headers = {
  4.     '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',
  5.     'referer':'https://www.cupfox.in/'
  6. }
  7. response = requests.get(url)
  8. print(response.status_code)
  9. with open('video.ts', 'wb') as f:
  10.     f.write(response.content)
复制代码
 
 2.观察m3u8文件内容


   分析得出:819a23c20b1000(.*?).ts
   
 3.完整代码:

  1. import re
  2. import requests
  3. import time
  4. import random
  5. def get_m3u8():
  6.     '''
  7.     获取m3u8文件
  8.     '''
  9.     url = 'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/index.m3u8'
  10.     resp = requests.get(url).text
  11.     # print(resp)
  12.     ts_list = re.findall('819a23c20b1000(.*?).ts', resp)
  13.     return ts_list
  14. def get_response(ts_list):
  15.     for ts in ts_list:
  16.         url = f'https://v.cdnlz3.com/20240802/25255_00ff1a4b/2000k/hls/819a23c20b1000{ts}.ts'
  17.         headers = {
  18.         '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',
  19.         'referer':'https://www.cupfox.in/'
  20.         }
  21.         response = requests.get(url, headers=headers)
  22.         try:
  23.             with open('video.ts', 'ab') as f:
  24.                 f.write(response.content)
  25.                 print(f'下载完成,{ts+1}/{len(ts_list)}')
  26.                 time.sleep(random.uniform(1, 2))
  27.         except Exception as e:
  28.             print('报错原因是',e)
  29. if __name__ == '__main__':
  30.     '''
  31.     关键词.m3u8,它是一个文本文件,里面包含了多个ts
  32.     '''
  33.     a = get_m3u8() # 通过分析得出   # ts_list = re.findall('819a23c20b10(.*?).ts)', resp)
  34.     get_response(a)
复制代码
乐成拿到,时长精确:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4