Python 2.7 urllib2在使用xml内容点击重定向时引发urllib2.HTTPError 301

Python 2.7 urllib2在使用xml内容点击重定向时引发urllib2.HTTPError 301,python,html,xml,urllib2,http-status-code-301,Python,Html,Xml,Urllib2,Http Status Code 301,我使用urllib2在hxxp://s3.amazonaws.com/mybucket。Amazon发回HTTP代码301和一些XML数据(重定向到hxxp://mybucket.s3.amazonaws.com/)。python没有遵循重定向,而是引发urllib2.HTTPError:HTTP Error 301:Moved Permanently 根据官方Python文档的说法,“默认处理程序处理重定向(300范围内的代码)” python是否处理得不正确(可能是因为响应中出现了意外的XM

我使用urllib2在
hxxp://s3.amazonaws.com/mybucket
。Amazon发回HTTP代码301和一些XML数据(重定向到
hxxp://mybucket.s3.amazonaws.com/
)。python没有遵循重定向,而是引发
urllib2.HTTPError:HTTP Error 301:Moved Permanently

根据官方Python文档的说法,“默认处理程序处理重定向(300范围内的代码)”

python是否处理得不正确(可能是因为响应中出现了意外的XML),还是我做错了什么?我在Wireshark中看到过,对python请求的响应与使用web客户端时对我的响应完全相同。在调试过程中,我没有看到响应对象中的任何地方捕获XML

谢谢你的指导

编辑:很抱歉最初没有发布代码。没什么特别的,只是这个-

import urllib2, httplib

request = urllib2.Request(site)
response = urllib2.urlopen(request)

您最好使用
请求
库<代码>请求默认情况下处理重定向:

我不理解urllib2的问题,我试图查看文档,但看起来不直观

似乎在Python3中,他们对其进行了重构,以减少使用负担,但我仍然相信
请求
是一条可行之路

注意,urllib2模块已在中的多个模块中拆分 Python 3命名为urllib.request和urllib.error。2to3工具将 将源代码转换为Python 3时自动调整导入


密码在哪里?请提供一个。抱歉,现在添加。我不使用任何特殊的处理程序或做很多事情。@ KayBalearica,您可以考虑切换到<代码>请求< /COD>模块。ᴏʟᴅsᴘᴇᴇᴅ 谢谢你的建议。它为我正确地处理它。urllib2的行为对你来说像是一个bug吗?@COLDSPEED-Lol,很公平!非常感谢。看来这就是我最后要做的。不过,我仍然有兴趣知道这是否是预期的urllib2行为。
import requests

response = requests.get(site)
print(response.content)