访问某些网页时会先进行页面跳转,再到真实目标页面。跳转页面的异常是302或301,同时该页面会给个新的Location变量,指向真实目标页面。但是如果想获得Location变量,则跳到目标页面后就无法再获得Location,因此必须在响应302页面上,尚未跳转时获得Location变量。
控制跳转用urllib比较麻烦,大概需要重写HttpRedirectHandler类,因此使用requests包。
requests的get或post访问函数中有allow_redirects参数,默认为True,改为False后访问遇到302则停止,返回302页面的响应,其中就有Location变量。
核心代码为:
response=requests.get(url,allow_redirects=False)
print(response.headers.get(‘Location’))