Python的Request模块,请求跳过认证及禁用警告
Posted tyro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:ProgramDataAnaconda3libsite-packagescertificacert.pem
3.1 举例
import requests url=‘https://inv-veri.chinatax.gov.cn/‘ #此网站是国家税务总局全国增值税发票查验平台 根证书是由税务电子证书管理中心颁发,并不包含在python的cacert.pem文件内 response=requests.get(url=url) #抛出SSLError异常
3.2 解决办法
请求的时候,加入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模块,请求跳过认证及禁用警告的全部内容~~欢迎大家讨论~~
以上是关于Python的Request模块,请求跳过认证及禁用警告的主要内容,如果未能解决你的问题,请参考以下文章