Python 如何从请求中获取原始url

Python 如何从请求中获取原始url,python,python-requests,Python,Python Requests,在执行以下操作时: >>> res=requests.get('http://www.hulu.com/return-of-the-one-armed-swordsman') >>> res.url u'http://www.hulu.com/watch/800769' 如何获取从res调用的原始url。也就是说,如何让res对象返回http://www.hulu.com/return-of-the-one-armed-swordsman?请求保留重定向请求

在执行以下操作时:

>>> res=requests.get('http://www.hulu.com/return-of-the-one-armed-swordsman')
>>> res.url
u'http://www.hulu.com/watch/800769'

如何获取从
res
调用的原始url。也就是说,如何让
res
对象返回
http://www.hulu.com/return-of-the-one-armed-swordsman

请求
保留重定向请求的历史记录。。。从第一个条目开始

import requests

res=requests.get('https://httpbin.org/status/301')
res.url
# https://httpbin.org/get
res.history[0].url
# https://httpbin.org/status/301
注意-您可能希望满足未发生重定向的情况,例如:

url = res.history[0].url if res.history else res.url

当然-另一种方法是将你的URL保存在一个变量中,并将其传递给
请求。获取
-然后你就知道你想要什么了…

我想我更喜欢
(res.history+[res])[0]。URL
@Stefan当然,甚至
(res.history或[res])[0].url
以避免列表连接,如果你真的想走这条路,但这并不像“条件if”语法(imho)那么容易摸索。嗯,是的,但这对我来说失去了意义。我发现
res.history+[res]
非常清楚,它只是完整的历史。@Stefan true-但是如果你不打算为此目的使用它-为什么要构建它?:)但是当我要求第一次输入完整的历史时,我正在使用它。