zoukankan      html  css  js  c++  java
  • Requests 请求-重定向Location

    Requests 请求,有时候A会发生请求网址 B,但是网址B 没有直接给反馈,通知了网址C,网址C 给了 请求网址A 响应。 这就是重定向、

    重定向:就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址B了。

    重定向状态码:301---临时重定向; 302 ---永久重定向;

    有个博客园 中抓包到的请求,就是重定向。

    url = https://i.cnblogs.com/EditPosts.aspx?opt=1

    抓包如下:

     python 中代码如下:

    这个请求中的 关键是:
    allow_redirects=True,requests 自动进行重定向处理; 这样,就无法查看进行重定向处理前 返回的headers 中location信息了。
    要查看重定向处理前的URL,返回,需将 allow_redirects=False,requests 不进行重定向处理。代码如下:

    可以捕捉到 响应 headers 中Location,到的新url。
    代码如下:
    urlB = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
    headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0"}
    s = requests.session()
    logging.captureWarnings(True)
    re = s.get(url=urlB,
    headers=headers,
    allow_redirects=True,
    verify=False)
    print(re.status_code)

    or:re = s.get(url=urlB,
               headers=headers,
    allow_redirects=False,
    verify=False)
    print(re.status_code)
    new_url = re.headers["Location"]
    print(new_url)
    故,遇到重定向URL时,如果希望 Requests 主动进行重定向处理:

    allow_redirects=True,请求过去后,遇到重定向,将主动请求 重定向后的新url,并返回新URL的响应;
    如果,不希望 进行处理,想捕捉 重定向后的URL,使用
    allow_redirects=False,打印响应 headers 中的Location。
    一般遇到重定向,不加 allow_redirects参数的话,Requests库默认 值为True,主动进行重定向后的请求。
     
     
  • 相关阅读:
    vscode_sync
    外国it视频教学文件
    关于登录状态,后台应该另外做一个接口来决定是否登录
    判断浏览器信息
    file控件预览
    githutb账号密码
    .net core 实践笔记(三)--封装底层
    .net core 实践笔记(二)--EF连接Azure Sql
    .net core 实践笔记(一)--开篇
    SQL引用DAL
  • 原文地址:https://www.cnblogs.com/MTXue/p/13937696.html
Copyright © 2011-2022 走看看