
python如何获取跳转后的url
在使用Python发送HTTP请求时,如何获取响应跳转后的最终URL地址?
利用requests库获取跳转后的URL
可以使用Python的requests库发送请求,默认情况下它会自动处理跳转。获取跳转后的URL可以通过response对象的url属性实现,例如:
import requests
response = requests.get('http://example.com')
final_url = response.url
print(final_url)
我想控制请求跳转行为,不让requests自动跳转,如何获取跳转地址?
关闭自动跳转并查看Location头部
在requests库中,可以通过设置allow_redirects=False禁止自动跳转。服务器返回302或301状态码时,响应头中的Location字段即是跳转目标地址。例如:
import requests
response = requests.get('http://example.com', allow_redirects=False)
if 'Location' in response.headers:
redirect_url = response.headers['Location']
print(redirect_url)
当网页存在多次重定向时,Python脚本如何一步步获取最终访问地址?
跟踪重定向历史获取最终网页地址
requests库的response对象包含一个history属性,是一个包含中间跳转response的列表。最终访问的URL为response.url,通过遍历history可获取各跳转地址:
import requests
response = requests.get('http://example.com')
for resp in response.history:
print('Redirected from:', resp.url)
print('Final URL:', response.url)