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