1. 程式人生 > >python爬蟲(二)

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:

https://movie.douban.com/   Accept-Encoding: gzip, deflate, br #表示希望伺服器傳送檔案的編碼格式 Accept-Language: zh-CN,zh;q=0.9,en;q=0.8  #表示使用者希望得到的檔案語言格式 #用於伺服器儲存使用者的相關資訊,以便提供相關服務 Cookie:ll="118099";bid=ZvQAtOVDvww;_pk_r  一個HTTP請求報文由請求行,請求頭,請求體組成,請求體用於攜帶資料,POST請求方式一般都會有請求體,常用於登陸註冊,傳輸大檔案,而GET沒有。 前面提到一個防盜鏈,通俗的說就是我希望使用者只通過某個指定的網站伺服器去訪問我自己的音樂伺服器,通過Referer可以獲知使用者是從哪個伺服器過來的,如果不是那個特定的伺服器便不會返回內容給使用者。 還有一個是防惡意請求,即我通過指定的網站伺服器可以獲知在一段時間內有多少使用者訪問了我的音樂伺服器,並可以根據自己伺服器的配置指定在一段時間內可以有多少使用者訪問,並告知指定的伺服器,便於攔截超出的訪問量。

二.HTTP之響應 該響應常見的是返回一個html. html,超文字標記語言,專門用於製作網頁,使不同的計算機之間可以互相無障礙的交流。

在爬蟲中可以根據此來提取自己所需要的資訊。

網際網路傳輸文件型別很多,除了HTML,還有XML,CSS等。

三.SSL 中文名:安全套接字層。聽名字就知道這玩意兒很安全,很靠譜。其實確實是名副其實,負責資料傳輸時的安全任務,類似鏢局。SSL是網路結構層中運輸層的安全協議。 首先我簡明介紹一下計算機網路的結構,最著名的,用處最廣泛的莫過於TCP/IP結構了。總共四層,自上而下依次為應用層,運輸層,網際層,網路介面層。應用層用於與使用者完成互動任務,如HTTP協議就在這一層發揮作用。運輸層負責兩個主機中程序之間的資料交換,傳輸的任務,TCP傳輸控制協議就在這一層。網際層提供兩個主機間的通訊服務,IP網際協議在這一層發揮作用。網路介面層,對資料進一步封裝,加工,這一層已經與物理電路相關連了。 然後咱們再回到SSL上來,這個協議為通過TCP傳輸的應用層資料提供了安全可靠的保障。反應過程:傳送端SSL接收到應用層的資料後讀取資料然後進行加密,將加密後的資料交給TCP協議處理,接受端SSL從TCP協議處讀取資料,進行解密然後將資料發往應用層。 其提供的安全服務主要有一下幾種:

  1. SSL伺服器鑑別,用於使用者鑑別服務的真實身份並獲取伺服器的數字公鑰。
  2. SSL客戶鑑別,用於伺服器識別對應的使用者資訊。
  3. 加密的SSL會話,對使用者傳送的資料,伺服器傳送的資料進行加密,並檢測傳輸的資料是否被攔截或篡改。