Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索数据包中的数据。用python_Python_Arrays_Sockets_Replace_Byte - Fatal编程技术网

搜索数据包中的数据。用python

搜索数据包中的数据。用python,python,arrays,sockets,replace,byte,Python,Arrays,Sockets,Replace,Byte,我正试图编写一个小型HTTP本地代理服务器,在我的机器上运行,并运行一些测试。 我的服务器目前运行良好,可以很好地满足请求 然而,当我试图分析封隔器时,我遇到了一个问题 我正在数据包中搜索标记“”,并在找到时将消息打印到日志中。 它在数量非常有限的网站上工作,而在另一个网站上,例如StackOverflow,它不工作 在搜索接收到的数据中的单词之前,是否需要进行某种解码?如果有-哪种解码?如何重新编码数据以服务于浏览器 以下是我的搜索和替换代码: data = i.recv(8192) i

我正试图编写一个小型HTTP本地代理服务器,在我的机器上运行,并运行一些测试。 我的服务器目前运行良好,可以很好地满足请求

然而,当我试图分析封隔器时,我遇到了一个问题

我正在数据包中搜索标记“”,并在找到时将消息打印到日志中。 它在数量非常有限的网站上工作,而在另一个网站上,例如StackOverflow,它不工作

在搜索接收到的数据中的单词之前,是否需要进行某种解码?如果有-哪种解码?如何重新编码数据以服务于浏览器

以下是我的搜索和替换代码:

data = i.recv(8192)
   if data:
      if "<head>" in data:
         print "Found Head Tag."
data=i.recv(8192)
如果数据:
如果数据中有“”:
打印“找到头标签”

上面的代码是一个简单的python代码,用于从套接字检索数据,将其保存到数据对象,并搜索想要的标记。正如我所说,它在很少几个网站上有效,而在其他网站上无效。

许多Web服务器使用压缩来降低带宽使用率。
您需要检查HTTP头的内容编码,并应用所需的操作(即gzip解压缩)以获取纯文本。

谢谢!但是,如何解压缩数据块,如上所述?当我尝试使用zlib模块时,我得到一个错误,说它不是有效的压缩数据。如果你帮我解决这个问题,我会很高兴的。我需要缓冲整个响应吗?这会大大降低冲浪速度,不是吗?而且,如果我用zlib而不是gzip,这会有什么关系吗?Tvm!是的,您需要缓冲整个HTTP响应,检查内容编码的值,提取响应的主体(无头)并将其传递给“gzip”模块(zlib使用的压缩算法相同,但其输出格式不兼容)。当然,可以使用不同的算法对响应进行压缩或编码,但实际上只使用了gzip。在转发结果到客户端之前,还应该考虑在压缩或删除内容编码头之后重新压缩数据。