1. 程式人生 > >爬蟲學習筆記(二)http請求詳解

爬蟲學習筆記(二)http請求詳解

not found 上傳 取數 found 語法錯誤 爬蟲學習 訪問 request 永久

上篇博客裏面寫了,爬蟲就是發http請求(瀏覽器裏面打開發送的都是http請求),然後獲取到response,咱們再從response裏面找到想要的數據,存儲到本地。

咱們本章就來說一下什麽是http請求,它裏面都有哪些東西,我們在寫爬蟲的時候,怎麽http請求裏面哪些對我們的爬蟲有影響。

http請求過程

咱們打開一個網站的時候,過程是這樣的客戶端(瀏覽器)發送請求到服務端(你打開的網站所在的服務器),服務端接收到請求,處理,返回數據給客戶端(瀏覽器),然後咱們在瀏覽器裏面看到了數據。

明白了這個過程之後呢,咱們再來說http請求裏面都包含了什麽東西。

請求方式

主要有:GET/POST兩種類型常用,另外還有HEAD/PUT/DELETE/OPTIONS
GET和POST的區別就是:請求的數據GET是在url中,POST則是存放在請求體裏面。

GET:一般向服務器獲取數據用get請求,get請求的數據都是放在url中的,實質上和post請求沒有太大的區別,當然也可以用來向服務器發送數據。

POST:一般向服務器發送數據用post請求,post請求的數據放在請求體裏。

HEAD:與GET方法一樣,都是向服務器發出指定資源的請求。只不過服務器將不傳回資源的本文部分。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中“關於該資源的信息”(元信息或稱元數據)。

PUT:向指定資源位置上傳其最新內容。

OPTIONS:這個方法可使服務器傳回該資源所支持的所有HTTP請求方法。用‘*‘來代替資源名稱,向Web服務器發送OPTIONS請求,可以測試服務器功能是否正常運作。

DELETE:請求服務器刪除Request-URI所標識的資源。

請求url

URL,即統一資源定位符,也就是我們說的網址,統一資源定位符是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標準資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎麽處理它。

URL的格式由三個部分組成:
第一部分是協議(或稱為服務方式)。 http/https
第二部分是存有該資源的主機IP地址(有時也包括端口號)。 www.nnzhp.cn/192.168.1.1:8888
第三部分是主機資源的具體地址,如目錄和文件名等。 /index

爬蟲爬取數據時必須要有一個目標的URL才可以獲取數據,因此,它是爬蟲獲取數據的基本依據。

請求頭

一個請求由兩部分組成, 請求頭和請求體。

包含請求時的頭部信息,如User-Agent,Host,Cookies等信息,user-agent就是你請求用的是什麽瀏覽器,host就是服務端的地址,還有很多信息,服務端是如何分辨你是用的什麽瀏覽器,你的ip地址就是從請求頭裏面獲取到的。下面就是在請求我博客的時候,發送的頭信息。

技術分享圖片

請求體

請求體就是發送數據的時候,數據放在請求體裏面。get請求是沒有請求體的,從上面的截圖也能看到,下面是沒有這個請求體的。post請求才有請求體。下面的截圖可以看到登陸博客的這個請求是一個post請求,登陸的賬號密碼就是放在請求體裏面的。

技術分享圖片

http響應

上面說了請求,下面說響應。

發送了請求,服務端要給返回數據嘛。這個就是響應,請求是你發出去的,響應是服務端返回給你的。

響應包含了2個部分,一個是響應頭,一個是響應體。響應頭裏面包含了響應的狀態碼,返回數據的類型,類型的長度,服務器信息,Cookie信息等等。

響應體裏面就是具體返回的數據了。

響應狀態碼

有很多響應狀態,不同的狀態碼代表不同的狀態,常見的狀態碼如:200代表成功,301跳轉,404找不到頁面,502服務端錯誤

  • 1xx消息——請求已被服務器接收,繼續處理
  • 2xx成功——請求已成功被服務器接收、理解、並接受
  • 3xx重定向——需要後續操作才能完成這一請求
  • 4xx請求錯誤——請求含有詞法錯誤或者無法被執行
  • 5xx服務器錯誤——服務器在處理某個正確請求時發生錯誤 常見代碼:
  • 200 OK 請求成功
  • 400 Bad Request 客戶端請求有語法錯誤,不能被服務器所理解
  • 401 Unauthorized 請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
  • 403 Forbidden 服務器收到請求,但是拒絕提供服務
  • 404 Not Found 請求資源不存在
  • 503 Server Unavailable 服務器當前不能處理客戶端的請求,一段時間後可能恢復正常
  • 301 目標暫時性轉移
  • 302 目標永久性轉移

響應頭、響應體

看下圖~

技術分享圖片

技術分享圖片

爬蟲學習筆記(二)http請求詳解