要保留重定向错误消息中的原始URL,可以使用try-except语句来捕获重定向错误,并从重定向错误对象中获取原始URL。
以下是一个示例代码:
import requests
url = 'https://example.com' # 要请求的URL
try:
response = requests.get(url, allow_redirects=False)
response.raise_for_status() # 抛出HTTP错误(如果有)
except requests.exceptions.HTTPError as errh:
print("HTTP错误:", errh)
except requests.exceptions.ConnectionError as errc:
print("连接错误:", errc)
except requests.exceptions.Timeout as errt:
print("超时错误:", errt)
except requests.exceptions.RequestException as err:
print("其他错误:", err)
if isinstance(err, requests.exceptions.TooManyRedirects):
original_url = err.response.request.url
print("原始URL:", original_url)
在上面的代码中,我们使用requests.get
函数发送一个GET请求,并将allow_redirects
参数设置为False
,以禁用重定向。然后,我们使用response.raise_for_status()
方法来抛出任何HTTP错误。
如果发生重定向错误,我们将捕获requests.exceptions.TooManyRedirects
异常,并从异常对象的response.request.url
属性中获取原始URL。然后,我们可以根据需要对原始URL进行处理或打印出来。
请注意,上述代码仅处理了requests.exceptions.TooManyRedirects
异常,您还可以根据需要处理其他异常类型。