【发布时间】:2017-12-29 09:44:13
【问题描述】:
我正在使用 urllib2 在hxxp://s3.amazonaws.com/mybucket 请求特定的 S3 存储桶。亚马逊发回一个 301 的 HTTP 代码以及一些 XML 数据(重定向到 hxxp://mybucket.s3.amazonaws.com/)。 python 没有遵循重定向,而是引发urllib2.HTTPError: HTTP Error 301: Moved Permanently。
根据HOWTO Fetch Internet Resources Using urllib2 的官方 Python 文档,“默认处理程序处理重定向(300 范围内的代码)”。
是 python 处理不正确(可能是因为响应中出现了意外的 XML),还是我做错了什么?我在 Wireshark 中看过,对 python 的请求的响应与使用 Web 客户端对我的响应完全相同。在调试中,我没有看到响应对象中的任何地方都捕获了 XML。
感谢您的指导。
编辑:很抱歉最初没有发布代码。没什么特别的,字面意思就是这样 -
import urllib2, httplib
request = urllib2.Request(site)
response = urllib2.urlopen(request)
【问题讨论】:
-
代码在哪里?请提供minimal reproducible example。
-
抱歉,现在添加。我没有使用任何特殊的处理程序或做很多事情。
-
@KayBalearica 你可以考虑切换到
requests模块。 -
@cᴏʟᴅsᴘᴇᴇᴅ 感谢您的建议。它为我正确处理。 urllib2 行为对您来说是不是一个错误?
-
@COLDSPEED 哈哈,够公平的!
标签: python html xml urllib2 http-status-code-301