python爬蟲(二)
HTTP和HTTPS HTTP,全稱超文字傳送協議,是屬於計算機網路中應用層的協議,而HTTPS是HTTP加上SSL,HTTP是明文傳輸,速度快,但安全係數很低,而HTTPS比HTTP安全很多,但缺點是傳輸速度比較慢。
一.HTTP之請求 這是一個請求報文的例子:
GET /review/best/ HTTP/1.1 #請求行使用了相對url(省略了主機域名)
#從這行開始以下均為請求頭,在爬蟲中字典的形式進行儲存
Host: movie.douban.com #此行給出了主機的域名
Connection: keep-alive #瀏覽器與伺服器的連線方式,該連線方式為長連線,即可不間斷通訊
Cache-Control: max-age=0 #指定的請求快取控制方式。此處為不接受快取。
DNT: 1 #Do not track 禁止跟蹤,等於1不跟蹤,等於0,可以跟蹤。
'''
此處顯示使用者使用的瀏覽器型號,識別標誌。有時寫爬蟲,需要帶上這個引數,如果不帶可能會使伺服器認為這是一個爬蟲,不返回響應。
'''
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
#告訴伺服器,我是從哪個頁面或連線過來的,便於伺服器處理一些資訊。功能:防盜鏈,防止惡意請求
Referer:
二.HTTP之響應 該響應常見的是返回一個html. html,超文字標記語言,專門用於製作網頁,使不同的計算機之間可以互相無障礙的交流。
在爬蟲中可以根據此來提取自己所需要的資訊。
網際網路傳輸文件型別很多,除了HTML,還有XML,CSS等。
三.SSL 中文名:安全套接字層。聽名字就知道這玩意兒很安全,很靠譜。其實確實是名副其實,負責資料傳輸時的安全任務,類似鏢局。SSL是網路結構層中運輸層的安全協議。 首先我簡明介紹一下計算機網路的結構,最著名的,用處最廣泛的莫過於TCP/IP結構了。總共四層,自上而下依次為應用層,運輸層,網際層,網路介面層。應用層用於與使用者完成互動任務,如HTTP協議就在這一層發揮作用。運輸層負責兩個主機中程序之間的資料交換,傳輸的任務,TCP傳輸控制協議就在這一層。網際層提供兩個主機間的通訊服務,IP網際協議在這一層發揮作用。網路介面層,對資料進一步封裝,加工,這一層已經與物理電路相關連了。 然後咱們再回到SSL上來,這個協議為通過TCP傳輸的應用層資料提供了安全可靠的保障。反應過程:傳送端SSL接收到應用層的資料後讀取資料然後進行加密,將加密後的資料交給TCP協議處理,接受端SSL從TCP協議處讀取資料,進行解密然後將資料發往應用層。 其提供的安全服務主要有一下幾種:
- SSL伺服器鑑別,用於使用者鑑別服務的真實身份並獲取伺服器的數字公鑰。
- SSL客戶鑑別,用於伺服器識別對應的使用者資訊。
- 加密的SSL會話,對使用者傳送的資料,伺服器傳送的資料進行加密,並檢測傳輸的資料是否被攔截或篡改。