問題引入:現(xiàn)在很多網(wǎng)站是使用HTTPS協(xié)議的,但是有些網(wǎng)站并沒有設(shè)置好HTTPS證書,或者HTTPS的證書不被CA機(jī)構(gòu)認(rèn)可,這個(gè)時(shí)候訪問這些網(wǎng)站就會(huì)報(bào)SSL證書錯(cuò)誤
實(shí)例:訪問https://www.ssr2.scrape.center/
對(duì)于這種情況我們使用代碼來爬取的效果
import requests
response = requests.get('https://ssr2.scrape.center/')
print(response.status_code)
代碼提示我們是SSL錯(cuò)誤
因此如果就是要爬取這個(gè)網(wǎng)站改怎么辦呢?
解決辦法:跳過SSL驗(yàn)證
直接使用verify這個(gè)屬性即可,這個(gè)屬性默認(rèn)是true,也就是默認(rèn)會(huì)驗(yàn)證SSL,我們把他設(shè)置為False即可跳過SSL驗(yàn)證
import requests
response = requests.get('https://ssr2.scrape.center/',verify=False)
print(response.status_code)
此時(shí)返回的是一個(gè)warning消息和一個(gè)成功的狀態(tài)碼200
出現(xiàn)警告的原因是系統(tǒng)建議我們給它指定證書
如果不想看到warning消息又該怎么操作呢??
方法一:設(shè)置忽略警告
import requests
from requests.packages import urllib3
urllib3.disable_warnings()
response = requests.get('https://ssr2.scrape.center/',verify=False)
print(response.status_code)
方法二:捕獲日志文章來源:http://www.zghlxwxcb.cn/news/detail-598894.html
import requests
import logging
logging.captureWarnings(True)
response = requests.get('https://ssr2.scrape.center/',verify=False)
print(response.status_code)
方法三:指定本地的證書用作客戶端證書(可以是單個(gè)文件或者包含兩個(gè)文件路徑的元組)
注意:使用證書的時(shí)候本地私有證書的key必須是解密狀態(tài),加密狀態(tài)的key是不允許的。文章來源地址http://www.zghlxwxcb.cn/news/detail-598894.html
到了這里,關(guān)于Python爬蟲學(xué)習(xí)日記——SSL證書驗(yàn)證的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!