響應:
響應,由服務端返回給客戶端,可以分爲三部分:響應狀態碼(Response Status Code)、響應頭(Response Headers)、響應體(Response Body)。
1、響應狀態碼
響應狀態碼錶示服務器的響應狀態。在爬蟲中,我們可以根據狀態碼來判斷服務器響應狀態,如狀態碼爲200,則證明成功返回數據,再進行進一步的處理,否則直接忽略。以下給出常見的錯誤代碼及錯誤原因
網頁請求常見響應碼:
狀態碼 | 說明 | 詳情 |
---|---|---|
100 | 繼續 | 請求者應當繼續提出請求。服務器已經接收到請求的一部分,正在等待其餘部分 |
101 | 切換協議 | 請求者已要求服務器切換協議,服務器已確認並準備切換 |
200 | 成功 | 服務器已成功處理了請求 |
201 | 已創建 | 請求成功並且服務器已經創建了新的資源 |
202 | 已接受 | 服務器已成功處理了請求,但尚未處理 |
203 | 非授權信息 | 服務器已成功處理了請求,但返回的信息可能來自另一個源 |
204 | 無內容 | 服務器成功處理了請求,但沒有返回任何內容 |
205 | 重置內容 | 服務器成功處理了請求,但內容被重置 |
206 | 部分內容 | 服務器成功處理了部分請求 |
300 | 多種選擇 | 針對請求,服務器可執行多種操作 |
301 | 永久移動 | 請求的網頁已永久移動到新位置,即永久重定向 |
302 | 臨時移動 | 請求的網頁暫時跳轉到其他頁面,即暫時重定向 |
303 | 查看其他位置 | 如果原來的請求時POST,重定向目標文檔應該通過GET提取 |
304 | 未修改 | 此次請求返回的網頁未修改,繼續使用上次的資源 |
305 | 使用代理 | 請求者應該使用代理訪問該網頁 |
307 | 臨時重定向 | 請求的資源臨時從其他位置響應 |
400 | 錯誤請求 | 服務器無法解析該請求 |
401 | 未授權 | 請求沒有進行身份驗證或驗證未通過 |
403 | 禁止訪問 | 服務器拒絕此請求 |
404 | 未找到 | 服務器找不到請求的網頁 |
405 | 方法禁用 | 服務器禁用了請求中指定的方法 |
406 | 不接受 | 無法使用請求的內容響應請求的網頁 |
407 | 需要代理授權 | 請求者需要使用代理授權 |
408 | 請求超時 | 服務器請求超時 |
409 | 衝突 | 服務器在完成請求時發生衝突 |
410 | 已刪除 | 請求的資源永久刪除 |
411 | 需要有效長度 | 服務器不接受不含有效內容長度標頭字段的請求 |
412 | 爲滿足前提條件 | 服務器未滿足請求者在請求中設置的其中一個前提條件 |
413 | 請求實體過大 | 請求實體過大,超過服務器的處理能力 |
414 | 請求URL過長 | 請求網址過長,服務器無法處理 |
415 | 不支持類型 | 請求格式不被請求頁面支持 |
416 | 請求範圍不符 | 頁面無法提供請求的範圍 |
417 | 爲滿足期望值 | 服務器爲滿足期望請求標頭字段的要求 |
500 | 服務器內部錯誤 | 服務器遇到錯誤,無法完成請求 |
501 | 未實現 | 服務器不具備完成請求的功能 |
502 | 錯誤網關 | 服務器作爲網關或代理,從上游服務器收到無效響應 |
503 | 服務器不可用 | 服務器目前無法使用 |
504 | 網關超時 | 服務器作爲網關或代理,但是沒有及時從上游服務器收到請求 |
505 | HTTP版本不支持 | 服務器不支持請求中所用的HTTP協議版本 |
2、響應頭
響應頭包含了服務器對請求的應答信息,一下給出常用的應答信息:
- Date:標識響應產生的時間;
- Last-Modified:指定資源的最後修改時間;
- Content-Encoding:指定響應內容的編碼;
- Server:包含服務器的信息,比如名稱、版本號等;
- Content-Type:文檔類型,指定返回的數據類型是什麼,如text/html代表返回HTML文檔,application/x-javascript則代表返回JavaScript文件,image/jpeg則代表返回圖片;
- Set-Cookie:設置Cookies。響應頭中的Set-Cookie告訴瀏覽器需要將此內容放在Cookies中,下次請求攜帶Cookies請求;
- Expires:指定響應的過期時間,可以使代理服務器或瀏覽器加載內容更新到緩存中。如果再次訪問時,就可以直接從緩存中加載,降低服務器負載,縮短加載時間;
3、響應體
最重要的就是響應體的內容了,響應的正文數據都在響應體中,例如請求網頁時,它的響應體就是網頁的HTML代碼;請求一張圖片時,它的響應體就是圖片的二進制數據。而爬蟲要解析的就是響應體的內容。
響應體具體位置:
所有內容全部引自《python3 網絡爬蟲開發實戰(人民郵電出版社)》,此筆記僅用於學習交流。