Python urllib2 解码分块编码
我有以下代码来打开和读取 URL:
html_data = urllib2.urlopen(req).read()
我相信这是从 HTTP 读取数据的最标准方法。 但是,当响应具有分块传输编码时,响应以以下内容开头字符:
1eb0\r\n2625\r\n
<?xml version="1.0" encoding="UTF-8"?>
...
这是由于上述分块编码而发生的,因此我的 XML 数据被损坏。
所以我想知道如何摆脱与分块编码相关的所有元数据?
I have the following code to open and read URLs:
html_data = urllib2.urlopen(req).read()
and I believe this is the most standard way to read data from HTTP.
However, when the response have chunked tranfer-encoding, the response starts with the following characters:
1eb0\r\n2625\r\n
<?xml version="1.0" encoding="UTF-8"?>
...
This happens due to the mentioned above chunked encoding and thus my XML data becomes corrupted.
So I wonder how I can get rid of all meta-data related to the chunked encoding?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我最终进行了自定义 xml 剥离,如下所示:
找不到任何简单的解决方案。
I ended up with custom xml stripping, like this:
Can't find any simple solution.
1eb0\r\n2625\r\n 是重组有效负载中的段开始/停止位置(十六进制)
1eb0\r\n2625\r\n is the segment start/stop positions (in hex) in the reassembled payload
您可以删除 ?xml 之前的所有内容
You can remove everything before ?xml