在 Python 3 中解压缩 gzip 服务器响应的最佳方法是什么?

2023-11-25

我原以为这会起作用:

>>> import urllib.request as r
>>> import zlib
>>> r.urlopen( r.Request("http://google.com/search?q=foo", headers={"User-Agent": "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11", "Accept-Encoding": "gzip"}) ).read()
b'af0\r\n\x1f\x8b\x08...(long binary string)'
>>> zlib.decompress(_)
Traceback (most recent call last):
  File "<pyshell#87>", line 1, in <module>
    zlib.decompress(x)
zlib.error: Error -3 while decompressing data: incorrect header check

但事实并非如此。深入Python使用 StringIO在这个例子中,但这似乎在Python 3中缺失了。正确的做法是什么?


它可以很好地与gzip(gzip 和 zlib 是相同的压缩,但具有不同的标头/“包装”。您的错误消息中包含此信息)。

import gzip
import urllib.request

request = urllib.request.Request(
    "http://google.com/search?q=foo",
    headers={
        "Accept-Encoding": "gzip",
        "User-Agent": "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11", 
    })
response = urllib.request.urlopen(request)
gzipFile = gzip.GzipFile(fileobj=response)
gzipFile.read()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 3 中解压缩 gzip 服务器响应的最佳方法是什么? 的相关文章

  • 我无法使用 Python 和 Facebook Marketing API 获取所有 Facebook 营销活动的统计信息

    我正在尝试检索以下指标 date campaign name impressions clicks spend 在我的 Facebook 帐户中的所有活动中 但显然我编写的脚本仅返回某些活动的统计数据 而不是全部 它仅返回大多数营销活动的营
  • Python3如何安装.ttf字体文件?

    我想使用 python3 更精确的 Python 3 6 代码在 Windows 10 上安装 ttf 字体文件 我用谷歌搜索 但我发现的唯一的就是这个使用python在windows上安装TTF字体 https stackoverflow
  • 如何只获取父类对象的属性

    我有两节课 class Parent object def init self id name self id id self name name self parent vars id name make a copy def print
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • TypeError:在 Python 3.8.1 上运行 Pytest 脚本时,参数中缺少必需字段“posonlyargs”

    我在 Python 3 8 1 上创建了一个简单的 Selenium Pytest 自动化脚本 运行脚本后 我看到以下错误 Traceback most recent call last Error messages TypeError r
  • 如何在 python 3.x 中使用 string.replace()

    The string replace 在 python 3 x 上已弃用 这样做的新方法是什么 与 2 x 一样 使用str replace https docs python org library stdtypes html str r
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst
  • 如何使用魔杖扭曲图像

    我正在尝试做同样的事情this https stackoverflow com questions 52090350 how to insert image in a mock up老问题但在python using wand 到目前为止我
  • H2O服务器崩溃

    去年我一直在使用 H2O 我已经厌倦了服务器崩溃 我已经放弃了 夜间发布 因为它们很容易被我的数据集崩溃 请告诉我在哪里可以下载稳定的版本 Charles 我的环境是 Windows 10 企业版 内部版本 1607 具有 64 GB 内存
  • Python 3 列表列表中的列表理解以转换类型

    考虑以下列表 list1 1 1 1 2 1 3 2 1 2 2 2 3 要理解字符串列表并将其转换为浮点数 可以使用 list1 0 float i for i in list1 0 但我尝试理解浮点数列表的列表并没有完全起作用 list
  • While 在范围内循环用户输入

    我有一些代码 我想要求用户输入 1 100 之间的数字 如果他们在这些数字之间输入一个数字 它将打印 Size input 并打破循环 但是 如果他们在外部输入一个数字1 100 它将打印 大小 输入 并继续向他们重新询问一个数字 但我遇到
  • 如何在 Detectron2 中计算并集交集?

    我正在使用 Detectron2 进行对象检测 我已经注册了 pascalvoc 数据集并训练了一个检测模型 如何计算测试数据集的平均 IOU 我知道 detector2 有一个用于计算 IOU 的预定义函数 即 detectorron2
  • 如何阅读网站内容?

    我是使用 python 2 7 的网络爬虫的新手 一 背景 现在 我想收集有用的数据AQICN org http aqicn org city shenyang usconsulate 这是一个很棒的网站 提供世界各地的空气质量数据 我想用
  • python 排列有问题

    我在排列方面遇到一些问题 当谈到Python时 我真的是一个大菜鸟 所以任何帮助将不胜感激 假设我在文本文件中有一个范围为 1 6 的列表 例如 它看起来像 1 2 3 4 5 6 我想打开所述 txt 文件并计算这 6 个数字中 N 的所
  • 检查 IP 地址是否在给定范围内

    我想检查一下是否有IP180 179 77 11位于特定范围之间 例如180 179 0 0 180 179 255 255 我编写了一个函数 它将每个 IP 八位字节与其他八位字节进行比较 def match mask IP min ip
  • 如何解压 PHP/Lumen/Laravel 的 gzip 请求?

    我收到来自第三方的 gzip 编码文本请求 1mb 所以这是有道理的 我的测试路线 router gt post testgzip function Illuminate Http Request request decompressed
  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • 为什么 dataclasses.astuple 返回类属性的深层副本?

    在下面的代码中astuple函数正在执行数据类的类属性的深层复制 为什么它不能产生与函数相同的结果my tuple import copy import dataclasses dataclasses dataclass class Dem
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的

随机推荐

  • GitPython:如何在 GitPython 中访问提交中的文件内容

    我是 GitPython 新手 我正在尝试获取提交中文件的内容 我能够从特定提交中获取每个文件 但每次运行该命令时都会收到错误 现在 我知道该文件存在于 GitPython 中 但每次运行程序时 都会收到以下错误 returned non
  • C 编程:仅从 fgets 打印 int

    看到这个main int main void int i int ch char str 512 fgets str sizeof str stdin for i 0 i lt strlen str i if str i 0 str i n
  • 创建对象后检查是否为 null

    我正在创建一个新对象 myobject t new myobject 如果新成功 我应该检查下一行是否有空引用 if null t 或者我可以确定这个对象肯定会不同于 null Thanks 根据C 文档 if new未能成功为新对象实例分
  • 为什么要使用版本控制? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在读一篇博客 作者这样说 除非签入版本控制系统 否则代码就不存在 对你所做的一切使用版本控制 任何版本控制 SVN Git 甚至 CVS 掌握它并使用它 我从未使用过任何类型的版本控制
  • Jenkinsfile 中的动态参数?

    我怎样才能使用Jenkins 动态插件 in a Jenkinsfile 我正在寻找的是 Jenkinsfile 片段 启用Build with ParametersJenkins 工作中的选项 选择后 脚本将填充可使用的列表Dynamic
  • 如何更改Wildfly服务器的IP地址

    我正在准备一个在 Wildfly 上运行的程序以部署到客户站点 并且我需要更改 Wildfly 启动的 IP 地址 例如 如何将 Wildfly 配置为在 127 0 0 2 而不是 127 0 0 1 启动 Update 我在 Windo
  • Ansible:根据 stdout 中的值对异步任务执行 failed_when:

    我正在尝试执行一个failed when 基于来自标准输出的值的异步任务 这是我的任务 name RUN SOME TASK LOCALLY command
  • C#:解决继承类与其基类之间的无效转换异常

    我有两个课程 名为 帖子 和 问题 问题定义为 public class Question Post 我的 Question 类不会覆盖 Post 的任何成员 它只是表达其他一些成员 我想要完成什么 我有一个 Post 类型的对象 其成员已
  • 等待在没有异步包装器的 Chrome 控制台中工作[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我读过 MDN 的等待定义是 await 运算符用于等待 Promise 它只能在异步函数内使用 这在编辑器中有效 但是在 chrome 控制台中 我编写了一个异步函数 然后在全局执行
  • 仅使用 javaScript 对 HTML 中的表格按日期值 desc 列进行排序

    是否可以仅使用 javaScript 来实现排序功能 而不需要任何其他排序库 假设我有一个表 它的第一列具有以下格式的日期值 MM dd yyyy 表还有两列 如下所示 table width 360 border 1 thead tr t
  • 如何在网站中显示类似youtube的视频播放器?

    我正在开发一个网站 我希望上传摄像头录制的视频 并且仅对登录用户可见 但不可下载 我还想编辑视频 让某些图像出现在背景中 并可能记下他们最后一次停止观看视频的时间 也就是说 如果他们在 30 分钟后停止观看 我希望他们下次观看时从 30 0
  • python yaml更新保留顺序和注释

    我使用 python 将密钥插入到 Yaml 中 但我想保留 yaml 中的顺序和注释 This Key is used for identifying Parent tests ParentTest test JOb1 myjob nam
  • 将数据从 Python 发送到 Javascript (JSON)

    我知道 JSON 可以解决这个问题 但我在实现它时遇到了问题 这是我的方法的详细信息 数据是用Python计算的 由于数据大小是动态的 因此我需要使用 JavaScript 为输出创建额外的 HTML 表格行 因此 我需要将数据从 Pyth
  • Selenium 服务器错误:无法创建新服务 chromedriverservice

    我尝试在 Windows 10 计算机上运行 webdriverio 但在尝试运行测试 js 文件时不断遇到相同的问题 所以我运行这个 jar your download directory selenium server standalo
  • 重用WCF服务客户端

    我有一个 WCF Web 服务 充当我的 ASP NET 网页的数据提供程序 在整个网页中 通过自动生成的 ServiceClient 对 Web 服务进行了多次调用 目前 我创建一个新的 ServiceClient 并为每个请求打开它 即
  • R 中的连续引用编号:如果是连续的,则用连字符分隔数字 - 如果不是,则添加逗号

    我想生成连续引用数对于 R 中的数字 如果数字是连续的 则应使用连字符分隔它们 否则 数字之间用逗号分隔 例如 数字1 2 3 5 6 8 9 10 11 and 13应该出来为1 3 5 6 8 11 13 这个问题已经被之前回答过c 并
  • 在 Angular 2 中的 @ngModule 中声明多个组件

    我正在开发一个大型应用程序Angular 2 and ASP netMVC 我的应用程序中有大约 120 个组件 它们都在 ngModule 声明块中声明 NgModule imports CommonModule declarations
  • Swift 的 String.count 的 BigO 是什么?

    当 swift 使用时String count is it O n 每次我们调用它时 我们都会迭代整个字符串以对其进行计数 or O 1 其中 swift 之前已经存储了该数组的大小并简单地访问它 绝对是O n 来自斯威夫特书 因此 如果不
  • 使用注解@SpringBootApplication进行配置

    我的 Spring Boot 配置有问题 我已经使用创建了基础 Spring Boot 项目https start spring io 我有一个问题 配置仅适用于子目录中的类 我尝试过注释 ComponentScan但这没有帮助 你知道我能
  • 在 Python 3 中解压缩 gzip 服务器响应的最佳方法是什么?

    我原以为这会起作用 gt gt gt import urllib request as r gt gt gt import zlib gt gt gt r urlopen r Request http google com search q