爬蟲入門(HTTP和HTTPS)

賈富程發表於2018-12-09

爬蟲的很關鍵的步驟就是傳送請求獲取響應,而在傳送請求獲取引數的過程中 就是傳送http或https的請求,獲取http或https的響應,下面圖片簡單的流程:

爬蟲入門(HTTP和HTTPS)爬蟲入門(HTTP和HTTPS)

概念的比較:

  • HTTP
    • 超文字傳輸協議
    • 預設埠號:80
  • HTTPS
    • HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協議
    • 預設埠號:443

HTTPS比HTTP更安全,但是效能更低

http請求的過程

  1. 瀏覽器先向位址列中的url發起請求,並獲取相應

  2. 在返回的響應內容(html)中,會帶有css、js、圖片等url地址,以及ajax程式碼,瀏覽器按照響應內容中的順序依次傳送其他的請求,並獲取相應的響應

  3. 瀏覽器每獲取一個響應就對展示出的結果進行新增(載入),js,css等內容會修改頁面的內容,js也可以重新傳送請求,獲取響應

  4. 從獲取第一個響應並在瀏覽器中展示,直到最終獲取全部響應,並在展示的結果中新增內容或修改————這個過程叫做瀏覽器的渲染

注意:

但是在爬蟲中,爬蟲只會請求url地址,對應的拿到url地址對應的響應(該響應的內容可以是html,css,js,圖片等)

瀏覽器渲染出來的頁面和爬蟲請求的頁面很多時候並不一樣

所以在爬蟲中,需要以url地址對應的響應為準來進行資料的提取

HTTP請求的形式

爬蟲入門(HTTP和HTTPS)

HTTP常見請求頭

  1. Host (主機和埠號)
  2. Connection (連結型別)
  3. Upgrade-Insecure-Requests (升級為HTTPS請求)
  4. User-Agent (瀏覽器名稱)
  5. Accept (傳輸檔案型別)
  6. Referer (頁面跳轉處)
  7. Accept-Encoding(檔案編解碼格式)
  8. Cookie (Cookie)
  9. x-requested-with :XMLHttpRequest (表示該請求是Ajax非同步請求)

HTTP重要的響應頭

  1. Set-Cookie (對方伺服器設定cookie到使用者瀏覽器的快取)

響應狀態碼(status code)

常見的狀態碼:

  • 200:成功
  • 302:臨時轉移至新的url
  • 307:臨時轉移至新的url
  • 404:找不到該頁面
  • 500:伺服器內部錯誤
  • 503:服務不可用,一般是被反爬


相關文章