爬蟲的很關鍵的步驟就是傳送請求獲取響應,而在傳送請求獲取引數的過程中 就是傳送http或https的請求,獲取http或https的響應,下面圖片簡單的流程:
概念的比較:
- HTTP
- 超文字傳輸協議
- 預設埠號:80
- HTTPS
- HTTP + SSL(安全套接字層),即帶有安全套接字層的超本文傳輸協議
- 預設埠號:443
HTTPS比HTTP更安全,但是效能更低
http請求的過程
瀏覽器先向位址列中的url發起請求,並獲取相應
在返回的響應內容(html)中,會帶有css、js、圖片等url地址,以及ajax程式碼,瀏覽器按照響應內容中的順序依次傳送其他的請求,並獲取相應的響應
瀏覽器每獲取一個響應就對展示出的結果進行新增(載入),js,css等內容會修改頁面的內容,js也可以重新傳送請求,獲取響應
從獲取第一個響應並在瀏覽器中展示,直到最終獲取全部響應,並在展示的結果中新增內容或修改————這個過程叫做瀏覽器的渲染
瀏覽器先向位址列中的url發起請求,並獲取相應
在返回的響應內容(html)中,會帶有css、js、圖片等url地址,以及ajax程式碼,瀏覽器按照響應內容中的順序依次傳送其他的請求,並獲取相應的響應
瀏覽器每獲取一個響應就對展示出的結果進行新增(載入),js,css等內容會修改頁面的內容,js也可以重新傳送請求,獲取響應
從獲取第一個響應並在瀏覽器中展示,直到最終獲取全部響應,並在展示的結果中新增內容或修改————這個過程叫做瀏覽器的渲染
注意:
但是在爬蟲中,爬蟲只會請求url地址,對應的拿到url地址對應的響應(該響應的內容可以是html,css,js,圖片等)
瀏覽器渲染出來的頁面和爬蟲請求的頁面很多時候並不一樣
所以在爬蟲中,需要以url地址對應的響應為準來進行資料的提取
HTTP請求的形式
HTTP常見請求頭
- Host (主機和埠號)
- Connection (連結型別)
- Upgrade-Insecure-Requests (升級為HTTPS請求)
- User-Agent (瀏覽器名稱)
- Accept (傳輸檔案型別)
- Referer (頁面跳轉處)
- Accept-Encoding(檔案編解碼格式)
- Cookie (Cookie)
- x-requested-with :XMLHttpRequest (表示該請求是Ajax非同步請求)
HTTP重要的響應頭
- Set-Cookie (對方伺服器設定cookie到使用者瀏覽器的快取)
響應狀態碼(status code)
常見的狀態碼:
- 200:成功
- 302:臨時轉移至新的url
- 307:臨時轉移至新的url
- 404:找不到該頁面
- 500:伺服器內部錯誤
- 503:服務不可用,一般是被反爬