Python的Request模块,请求跳过认证及禁用警告

最近在学python的爬虫,用到Requests模块。关于requests模块的优点,用过的人才知道!笔者用的python的版本时3.6.其他版本还未使用,请勿完全的对号入座,谢谢。

1、requests模块的官方文档:http://docs.python-requests.org/

2、python中requests模块的安装:pip install requests 

   ---->若不指定版本,则默认是安装的python官方已发布的2.19.1。requests版本问题,涉及到了这篇博客的主题。

  ----->指定版本的安装:pip install --upgrade --force-reinstall requests==2.6.0  

3、Requests 模块可以为 HTTPS 请求验证 SSL 证书,就像 web 浏览器一样。在不指定的情况下,SSL 验证默认是开启的。

  Python对于HTTPS请求中的证书的验证,并不会去系统的证书系统验证,而是使用它自己收录的证书库cacert.pem。

  如何查看cacert.pem

import requests.certs
print(requests.certs.where())
#输出 --> C:\ProgramData\Anaconda3\lib\site-packages\certifi\cacert.pem

  3.1 举例

import requests
url='https://inv-veri.chinatax.gov.cn/'
#此网站是国家税务总局全国增值税发票查验平台 根证书是由税务电子证书管理中心颁发,并不包含在python的cacert.pem文件内
response=requests.get(url=url)
#抛出SSLError异常

  3.2 解决办法

扫描二维码关注公众号,回复: 2653546 查看本文章

  请求的时候,加入verify参数。不写的时候,默认verify=True,将其改为verify=False,即可跳过SSL验证

requests.get(url=url,verify=False)
#跳过SSL验证,但会抛出警告

  

  虽然这个警告并不影响数据的抓取,但是对于强迫症患者来说,看着也是很烦人,想去掉这些警告。本文即是为了解决去掉这类警告

4、去掉警告

  4.1 去掉所有的警告,简单粗暴

import warnings
warnings.filterwarnings('ignore')
#缺点:去掉所有的警告

  4.2 去掉指定的警告,更有针对性

#(1)针对requests 2.5.0版本以下的,不包含2.5.0版本
from urllib3.exceptions import InsecureRequestWarning  
#在请求前加入以下代码:      requests.urllib3.disable_warnings(InsecureRequestWarning)
(2) 针对requests 2.5.0版本及以上的版本
from requests.packages.urllib3.exceptions import InsecureRequestWarning
#在请求前,加入以下代码     requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

  ---> 如何查看导入的requests模块的版本

import requests
print(requests.__version__)

  ---> python官方,requests目前最新版本是2.19.1,此版本的InsecureRequestWarning导入方式需要注意,选择方法1

  --->升级requests版本---在cmd内通过pip命令升级requests版本

    pip install --upgrade --force-reinstall requests==2.6.0 urllib3 <----指定requests的版本,同时更新urllib3的版本
    输出----> Successfully installed requests-2.6.0 urllib3-1.23,则升级成功,升级到2.5.0版本以后的,则需要通过方法二去除警告

以上,则是Python的Request模块,请求跳过认证及禁用警告的全部内容~~欢迎大家讨论~~

  

猜你喜欢

转载自www.cnblogs.com/tyro/p/9451860.html