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 解決辦法

  請求的時候,加入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模塊,請求跳過認證及禁用警告的全部內容~~歡迎大家討論~~

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM