关于 python request 的 response 返回 b‘\xa3\xff\xff\x11E .....‘ 类型的数据的解决方案

最近写开发一个爬虫, 程序在本地好好的,返回的是正常的 html, 但是到了生产环境,不知道为什么返回的是一堆乱码

长这样:

查了好几天都没有进展, 对其进行各种转码均无效

今天终于找到解决办法了,感谢这个回答:

python 3.x - Unable to read json response from requests library - Stack Overflow

原来这种数据是经 Brotli 压缩后的数据,下面是文心一言给出的解释:

关于Brotli

Brotli是一种由Google开发的开源通用数据压缩算法,旨在优化网络上的数据传输。

以下是关于Brotli的详细概述:

  1. 背景与目的
    • 现代的网页通常包含大量的HTML、CSS和JavaScript代码以及图片、视频等大型文件数据,导致网页加载速度较慢。
    • Brotli的设计目标是通过高效的压缩算法,减少网络传输的数据量,从而加快网页加载速度,提升用户体验。
  2. 技术特点
    • 压缩效率:相比传统的GZIP和DEFLATE算法,Brotli具有更高的压缩比,可以将数据压缩到更小的体积,节省带宽和存储空间。
    • 编码技术:Brotli采用了多种先进的编码技术,包括霍夫曼编码(Huffman coding)、LZ77字典匹配以及自适应二进制长度编码(Adaptive Binary Length Coding),能够针对不同的输入数据动态调整压缩策略,实现最佳的压缩效果。
    • 可配置性:Brotli的编码器库提供了12个质量级别(从0到11),允许在压缩速度和压缩率之间进行权衡。
    • 跨平台支持:Brotli库支持多种操作系统和编程语言,包括C/C++、Python、Java等,方便开发者集成到各种项目中。
  3. 应用场景
    • Web性能优化:Brotli能够显著减少网络传输的数据量,加快页面加载速度,适用于HTTP/2多路复用和WebSocket传输等场景。
    • 服务器资源节省:在存储有限的环境或带宽成本较高的情况下,Brotli可以帮助节省存储空间和带宽消耗。
    • 实时通信:在实时通信应用(如视频会议)中,数据压缩可以降低延迟,改善用户交互体验。
  4. 兼容性
    • 尽管Brotli是一种新的压缩标准,但它已经在大多数现代浏览器中得到支持,确保了广泛的兼容性。
  5. 注意事项
    • Brotli压缩只在HTTPS下生效,因为HTTP请求中的Accept-Encoding头通常不包含br(Brotli的缩写)。

综上所述,Brotli作为一种高效的压缩算法,为Web加速提供了有力的支持,是提升网络性能和用户体验的重要工具。

python Brotli 解压

在Python中,你可以使用brotli库来解压Brotli压缩的数据。这个库提供了Brotli压缩和解压的API。如果你还没有安装这个库,你可以通过pip来安装它:

pip install brotli

一旦安装完成,你就可以在Python代码中使用这个库来解压Brotli数据了。下面是一个简单的例子:

import brotli 


# 假设你有一个Brotli压缩的字节串 
compressed_data = b'...' # 这里应该是你的Brotli压缩数据 


# 使用brotli.decompress()函数来解压数据 
decompressed_data = brotli.decompress(compressed_data) 


# 现在decompressed_data包含了原始数据 
print(decompressed_data)

在这个例子中,brotli.decompress()函数接收一个字节串(bytes),该字节串应该包含Brotli压缩的数据。这个函数会返回一个字节串,该字节串包含了解压后的原始数据。

解压后, 终于显示正常数据了,谢天谢地谢广坤,终于解决了

同理,可能还会有其他压缩格式, 是根据 header 的  Accept-Encoding, 用上面的解压方式不行的话, 可尝试其他 Accept-Encoding 的其他解压方式

知识库又增加了一点点

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/715929.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW回热系统热经济性分析及故障诊断

开发了一种利用LabVIEW软件的电厂回热系统热经济性分析和故障诊断系统。该系统针对火电厂回热加热器进行优化,通过实时数据监控与分析,有效提高机组的经济性和安全性,同时降低能耗和维护成本。系统的实施大幅提升了火电厂运行的效率和可靠性&…

永久删除的文件如何恢复?记好这4个方法,轻松恢复文件!

“在清理电脑时,我一不小心把一些还需要的文件永久删除了,不知道大家有没有方法可以恢复这些文件呢?” 在数字时代,我们的生活和工作几乎都离不开电脑和各类存储设备。然而,随着数据的不断增长,误删文件、格…

DNS响应时间分析

目录 什么是DNS响应时间? 为什么DNS响应时间很重要? AnaTraf流量分析仪DNS分析 在当今数字化时代,网络的稳定性和性能对企业的运营至关重要。作为IT运维人员,我们的职责是确保网络顺畅运行,而DNS(域名系…

想做副业,如何发现用户需求呢?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

关于电脑文件的规划思考

概述 设置C、D、E、F 四个盘 C盘:系统数据使用,操作系统、其他软件需要用到的系统性资源 D盘:应用软件区 的使用,数据库、navacat、idea、visual studio、浏览器、向日葵、虚拟机…… E盘:工作区:公司资料…

【云】各家云服务器介绍

文章目录 各主流云服务厂商个人开发者购买什么够用优惠信息 各主流云服务厂商 腾讯云: 优点:腾讯云在程序员圈子中享有“良心云”的美誉,主要是因为其价格性价比高,续费价格也不贵。腾讯云提供了多款云服务器配置,如2核…

物流货运单怎么打印,佳易王货物运单打印查询统计管理系统操作教程

物流货运单怎么打印,佳易王货物运单打印查询统计管理系统操作教程 一、前言 以下软件操作教程以,佳易王物流货运单管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 软件操作教程 1、物流开单点击导航栏 物流开单…

碉堡了!云原生大佬撰写的K8s学习指南,有点炸裂,建议运维都收藏!

在这个数字化转型的时代,容器化和云原生技术已成为软件开发的重要趋势。【Kubernetes】作为云原生领域的旗舰项目,不仅是一种容器编排工具,更是构建现代、弹性和可扩展应用程序的基础平台。 因此,对于运维人员来说,学…

【第四篇】SpringSecurity的HttpSecurity详解

SpringSecurity的XML文件配置 在配置文件中通过 security:http 等标签来定义了认证需要的相关信息 SpringSecurity的HttpSecurity配置 在SpringBoot项目中,脱离了xml配置文件的方式,在SpringSecurity中提供了HttpSecurity等工具类,这里HttpSecurity就等同于在配置文件中定…

【算法】Graham 凸包扫描算法 ( 凸包概念 | 常用的凸包算法 | 角排序 | 叉积 | Python 代码示例 )

文章目录 一、Graham 凸包扫描算法1、凸包概念2、常用的凸包算法3、Graham 凸包扫描算法 二、Graham 算法前置知识点1、角排序2、叉积3、算法过程分析 三、代码示例1、完整代码示例2、执行结果 使用 Graham 算法绘制的凸包效果 : 博客代码下载 : https://download.csdn.net/d…

【编程语言】Python平台化为何比Java差?

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

[Shell编程学习路线]——if条件语句(单,双,多分支结构)详细语法介绍

🏡作者主页:点击! 🛠️Shell编程专栏:点击! ⏰️创作时间:2024年6月17日7点50分 🀄️文章质量:95分 文章目录 ————前言———— 💯趣站&#x1f4af…

AI大模型在运动项目的深度融合和在穿戴设备的实践及未来运动健康技术发展

文章目录 1. 技术架构2. 模型选择2.1 LSTM(长短期记忆网络)2.2 CNN(卷积神经网络)2.3 Transformer 3. 数据处理数据预处理 4. 实时性要求4.1 边缘计算4.2 模型优化 5. 数据隐私与安全6. 深入分析AI大模型在穿戴设备的应用和未来发…

Harbor镜像中心搭建

文章目录 Harbor镜像中心搭建前置条件下载Harbor创建CA证书配置Harbor开始启动地址映射访问配置本地登录配置外部虚拟机访问 Harbor镜像中心搭建 Harbor是一个镜像中心,我们所熟知的DockerHub就是一个镜像中心,我们可以把我们打包的镜像放在镜像中心中供…

Nuxt3 实战 (九):使用 Supabase 实现 Github 认证鉴权

前言 Supabase 使用的是 postgresql 的 Row Level Security (RLS),可以限制不同用户对同一张表的不同数据行的访问权限。这种安全机制可以确保只有授权用户才能访问其所需要的数据行,保护敏感数据免受未授权的访问和操作。 Auth Providers 打开 Supab…

Latex的参考文献中显示三个问号???——解决办法

1、问题描述 在使用spring模板,并引用book时,末尾的引文地方出现三个???由于使用的bibtex是直接从谷歌学术中导出来的,其中仅包含作者,书名,出版社,年份等,缺少了重要的信息。结果导致在出版…

【ARM】MDK Debug模式下Disassembly窗口介绍

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 主要了解Disassembly窗口中包含的内容,和如何利用Disassembly中的内容了解程序的存储和调用情况。 2、 问题场景 对于Disassembly窗口中具体包含的内容不了解,无法合理地应用Disassembly窗口…

为何云原生是未来?企业IT架构的颠覆与重构(上)

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是云原生 2、云原生的背景和起源 背景 起源 关…

SRM系统对供应商的意义是什么?

在甲方与乙方互相合作、沟通的世界里,供应商们也同样面临着诸多挑战~ 你是否经常感到在庞大的订单流中迷失方向,对库存情况一无所知,你是否在与采购商的沟通中频频碰壁?你是否在苦苦寻找一个能够全面管理供应商关系的系统&#x…

Dockerfile 自定义镜像

大家好 , 今天我要和大家分享一个现代软件开发中不可或缺的工具 - Docker . 在这个快速发展的技术时代 , 我们经常面临着应用部署的复杂性、环境差异以及不同操作系统之间的兼容性问题 . 这些问题不仅消耗大量时间 , 还可能导致项目延期和成本增加 . Docker 的出现解决了我们在…