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

【python基础】使用python下载二进制文件

使用python下载二进制文件

图片下载

import requestsheaders = {
}
cookies = {}url = "https://"
params = {"w": "640","h": "427"
}
response = requests.get(url, headers=headers, cookies=cookies, params=params)
open('1.jpg','wb').write(response.content)
print(response)

base64模块

同样的是一个内置的模块。

import base64
# 要编码的字符串
original_string = "Hello, World!"
# 进行Base64编码
encoded_bytes = base64.b64encode(original_string.encode('utf-8'))
encoded_string = encoded_bytes.decode('utf-8')
print("Base64编码后的字符串:", encoded_string)
# 进行Base64解码
decoded_bytes = base64.b64decode(encoded_string)
decoded_string = decoded_bytes.decode('utf-8')
print("Base64解码后的字符串:", decoded_string)

字符集不加也是一样的

import base64
# 要编码的字符串
original_string = "Hello, World!"
# 进行Base64编码
encoded_bytes = base64.b64encode(original_string.encode())
encoded_string = encoded_bytes.decode()
print("Base64编码后的字符串:", encoded_string)
# 进行Base64解码
decoded_bytes = base64.b64decode(encoded_string)
decoded_string = decoded_bytes.decode()
print("Base64解码后的字符串:", decoded_string)

b64图片下载

使用base64模块把b64编码转成图片

import base64
a = "data:image\/jpeg;base64,aUkfslGRshF...YAA=="
b = a.replace("\\","").replace("data:image/jpeg;base64,","")
imgdata = base64.b64decode(b)
print(imgdata)
with open("decoded_image.jpg", "wb") as file:file.write(imgdata)

音频下载

音频也是同样原理

response = requests.get(url, headers=headers, cookies=cookies, params=params)
with open('3.mp3', 'wb') as f:f.write(response.content)
print(response)

视频下载(m3u8)

一个视频看做一个整体,一大段二进制数据

data = '12313213213213213214325432543654786597659'
# 1,2,3,1,3,2....
  1. 请求获取m3u8文件

  2. 看这行 EXT-X-KEY 分辨是否有有加密

#EXT-X-KEY:METHOD=AES-128,URI="https://.../static.key"
  1. 下载ts文件,如果有加密就解密保存,否则直接保存,并且放到一起。

  2. 下载完所有ts文件之后,需要打开一个新文件,使用二进制模式打开。

  3. 循环读取所有ts文件,写入第四步打开的这个新文件中。

import jsonimport requests
import re
from tqdm import tqdm #进度条模块,IDE提示安装就装上headers = {#自己补上
}
cookies = {#需要的时候补上
}
def get_m3u8_file_url():url = "https://.."response = requests.get(url, headers=headers, cookies=cookies)document  = response.textinfo  = re.findall(' 自己补上要提取的正则表达式', document, re.S)[0].strip()[:-1]info_json  = json.loads(info)play =  json.loads(info_json['a']['a1'])['b'][0]['b1'][0]['url']filename = json.loads(info)['title']return play,filenamedef get_ts_files_url(url):response = requests.get(url, headers=headers, cookies=cookies)document = response.textts_files = re.sub('#.*','',document).split() #去掉多余的部分,只留下ts文件的urlprint(ts_files)return ts_filesdef get_ts_files(ts_files,path,filename):with open(f'{path}/{filename}.mp4','ab') as f:for ts in tqdm(ts_files):ts_url = 'https://..' + tsts_content = requests.get(ts_url, headers=headers, cookies=cookies).content#如果有加密,则在这里先将二进制数据解密,随后再保存f.write(ts_content)print(f'{filename}:合成完成!')if __name__ == '__main__':path = 'D:\test' #自行修改m3u8_file_url,title = get_m3u8_file_url()print(m3u8_file_url)ts_files_url =  get_ts_files_url(m3u8_file_url)get_ts_files(ts_files_url,path,title)
http://www.jsqmd.com/news/831651/

相关文章:

  • LSM6DS3TR-C与磁力计九轴融合:嵌入式姿态解算算法实现与优化
  • AI如何学习科学品味:从论文评估到智能文献筛选的实践路径
  • 基于PIR传感器与HalloWing的自动惊吓陷阱:嵌入式系统交互实践
  • Rider对非商业用途免费全球最受喜爱的 .NET 和游戏开发 IDE
  • 动画性能监控:打造流畅的用户体验
  • 3分钟解决iPhone在Windows无法上网的终极方案:苹果USB网络共享驱动一键安装指南
  • codex features
  • 降AI率软件越便宜越好吗?实测5个主流降AI工具,首选嘎嘎降!
  • Solon框架解析:轻量级Java应用开发新范式与云原生实践
  • AWorksLP嵌入式开发:基于FatFs的SD卡文件系统操作全解析
  • 2026年当下,长治整屋定制优选平台深度解析与联系指南 - 2026年企业推荐榜
  • Arm Cortex-A处理器缓存与TLB架构深度解析
  • 2026 首发|GEO 全域运营经典案例:公域引流到私域转化全链路完整复盘
  • HAProxy 如何实现 TCP 模式下的 MySQL 数据库负载均衡
  • 基于NLP的文本逻辑分析工具:思考词汇识别与可视化实践
  • 4.AI大模型-幻觉、记忆、参数-大模型底层运行机制
  • 【mv】戏剧结构为什么要设计幕 起承转合 这种设计
  • Harness 中的请求标识染色:端到端追踪
  • 2026年5月河南桥梁护栏项目优选供应商实力解析 - 2026年企业推荐榜
  • 51_《智能体微服务架构企业级实战教程》智能助手主应用服务之保存攻略节点
  • 芯片制程数字背后的真相:从摩尔定律到营销节点的演进
  • 硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显
  • BookGet完整指南:一键下载全球50+图书馆古籍资源的终极工具
  • 2026年5月中国流量仪表厂家十大排名榜推荐:10家专业评测助夜间巡检防计量失真 - 品牌推荐
  • 2026年,天津这家玻璃贴膜服务商性价比超高,不了解就亏大啦!
  • GitHub Profile美化指南:从Markdown到动态组件打造专业开发者名片
  • 容器镜像深度解析与生产级部署实战指南
  • 交互式文档与低代码开发:moltbook-pioneer项目实战解析
  • 电动车再生制动与ABS联合控制【附代码】
  • 硬件研发干货:钡特电源 VB15-24S24LD 与金升阳 VRB2424LD-15WR3 应用适配广泛