- 實戰Python網絡爬蟲
- 黃永祥
- 470字
- 2019-11-22 18:44:40
5.6 證書驗證
當遇到一些特殊的網站時,在瀏覽器上會顯示連接不是私密連接而導致無法瀏覽該網頁。若在沒有安裝12306根證書的情況下訪問12306網站,則頁面如圖5-3所示。

圖5-3 查詢12306的車票
這里補充一個知識點,CA證書也叫SSL證書,是數字證書的一種,類似于駕駛證、護照和營業執照的電子副本。因為配置在服務器上,也稱為SSL服務器證書。
SSL證書就是遵守SSL協議,由受信任的數字證書機構頒發CA,在驗證服務器身份后頒發,具有服務器身份驗證和數據傳輸加密功能。
SSL證書在客戶端瀏覽器和Web服務器之間建立一條SSL安全通道(Secure Socket Layer, SSL),安全協議是由Netscape Communication公司設計開發的。該安全協議主要用來提供對用戶和服務器的認證,對傳送的數據進行加密和隱藏,確保數據在傳送中不被改變,即數據的完整性,現已成為該領域中全球化的標準。
一些特殊的網站會使用自己的證書,如12306首頁提示下載安裝根證書,這是為了確保網站的數據在傳輸過程中的安全性。在講述urllib.request.urlopen的時候,urlopen帶有cafile、capath和cadefault參數,可以用于設置用戶的CA證書。
遇到這類驗證證書的網站,最簡單而暴力的方法是直接關閉證書驗證,可以在代碼中引入SSL模塊,設置關閉證書驗證即可。代碼如下:

推薦閱讀
- 新一代通用視頻編碼H.266/VVC:原理、標準與實現
- 數據結構(Java語言描述)
- Instant 960 Grid System
- 精通軟件性能測試與LoadRunner實戰(第2版)
- PHP+MySQL網站開發項目式教程
- C程序設計案例教程
- Oracle Exadata專家手冊
- Python機器學習:預測分析核心算法
- Python商務數據分析(微課版)
- Mastering VMware Horizon 7(Second Edition)
- 零基礎學C++(升級版)
- Getting Started with Electronic Projects
- Java高級程序設計
- 交互設計師成長手冊:從零開始學交互
- Effective C++:改善程序與設計的55個具體做法(第三版)中文版(雙色)