zoukankan      html  css  js  c++  java
  • 004 python接口 重定向

    /*
    时间:2018/09/18
    功能:重定向
    目录: 
      一: 查看
      二: 查看历史
         1 方法1 - fiddler
         2 方法2 - python
      三: 禁止 */

    一: 查看

     

    1 : 访问网站: https://www.haoso.com

    1 : 页面自动跳转: https://www.so.com/

    1 : 查看访问https://www.haoso.com的状态码是302。

    2 : 从服务端返回数据,包含重定向之后的地址。

    二: 查看历史

        1 方法1 - fiddler

    1 : 访问url: https://i.cnblogs.com/EditPosts.aspx?opt=1,博客后台编辑地址。

    2 : 重定向地址: https://passport.cnblogs.com/user/signin?ReturnUrl=http://i.cnblogs.com/EditPosts.aspx?opt=1&AspxAutoDetectCookieSupport=1 ,博客登录地址。

    1 : 查看左侧红框内状态码为301和302,可以看到每次重定位的过程。

        2 方法2 - python

    #coding:utf-8
    import requests
    import urllib3
    urllib3.disable_warnings()
    
    url = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36",
        "Upgrade-Insecure-Requests" : "1",
        "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "Accept-Encoding" : "gzip, deflate, br",
        "Accept-Language" : "zh-CN,zh;q=0.9",
    }
    
    # 自动处理重定向 s = requests.session() r1 = s.get(url, headers = header, verify = False) print(r1.status_code) print(r1.url) print(r1.history) for i in r1.history: print(i.url) print(i.status_code)

    1 : 使用python,打印每次重定向变化。

    1 : 可以看到和fiddler,每次重定向地址一样。


    三: 禁止

    #coding:utf-8
    import requests
    import urllib3
    urllib3.disable_warnings()
    
    url = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
    header = {
        "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36",
        "Upgrade-Insecure-Requests" : "1",
        "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
        "Accept-Encoding" : "gzip, deflate, br",
        "Accept-Language" : "zh-CN,zh;q=0.9",
    }
    
    s = requests.session()
    r1 = s.post(url,
                headers = header,
                allow_redirects = False,    # 禁止重定向
                verify = False)
    
    print(r1.status_code)
    print(r1.url)
    
    print(r1.history)
    for i in r1.history:
        print(i.url)
        print(i.status_code)

    1 : 使用python请求,禁止重定向。

    1 : 可以看到最终url,没有重定向。

  • 相关阅读:
    iap 详细
    血的教训,下次开工程 一点要写好判断空字符串方法
    iOS中的ScrollView
    自定义弹框加载方式
    CAGradientLayer简介(处理视图渐变色)
    iOS 制作view渐变的效果CAGradientLayer
    将vs2012的项目转化成VS2010
    关于Excel导入的HDR=YES; IMEX=1详解
    C#读取Excel表中的数据时,为何有些行的字段内容读取不到
    OLEDB读取EXCEL表格时,某些字段为空,怎么办?
  • 原文地址:https://www.cnblogs.com/huafan/p/9666043.html
Copyright © 2011-2022 走看看