zoukankan      html  css  js  c++  java
  • requests 进行https请求,一直报SSL 报错,以及 移除SSL认证后的InsecureRequestWarning警告解决

    python 用requests库,进行https 请求时,url,headers,请求方式等都正确,但就是过不去,一堆 SSL 的错:

     比如,博客园的编辑界面,fiddler 抓包后

     进行请求。代码如下:

    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",
    "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Encoding":"gzip, deflate, br",
    "Accept-Language":"zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2"}
    s = requests.session()
    re = s.get(url=urlB,headers=headers)
    print(re)
    请求结果,就是上图所示,一堆的SSL错误。
    解决SSL报错 -方法:requests 请求时,增加参数 verify=False。设置后,即移除SSL 认证
    请求代码即:
    re = s.get(url=urlB,headers=headers,verify=False)
    print(re.status_code)
    结果如下:

     看到response响应已经返回成功。美中不足:会有个 InsecureRequestWarning 警告。

    二、解决 InsecureRequestWarning 警告,

    方法一: 在请求requests前,增加一行代码

    requests.packages.urllib3.disable_warnings()
    整体请求代码如下:
    s = requests.session()
    requests.packages.urllib3.disable_warnings()
    re = s.get(url=urlB,headers=headers,verify=False)
    print(re.status_code)


    方法二:导入logging模块,请求requests 前,增加一行代码:
    logging.captureWarnings(True)
    整块代码如下
    s = requests.session()
    logging.captureWarnings(True)
    re = s.get(url=urlB,headers=headers,verify=False)
    print(re.status_code)

    以上两种解决方法都可以,代码运行结果:





  • 相关阅读:
    sscanf 函数
    hdu 1232 畅通工程 解题报告
    hdu 2048 神、上帝以及老天爷 解题报告
    hdu 2049 不容易系列之(4)——考新郎 解题报告
    hdu 2013 蟠桃记 解题报告
    hdu 2093 考试排名 解题报告
    分糖果 的解题报告
    hdu 2017 字符串统计 解题报告
    表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN【转】
    sort_area_size设置【转】
  • 原文地址:https://www.cnblogs.com/MTXue/p/13937387.html
Copyright © 2011-2022 走看看