1. 程式人生 > >爬蟲寫法及狀態碼的認知,以小豬短租為例---爬蟲案例

爬蟲寫法及狀態碼的認知,以小豬短租為例---爬蟲案例

寫一個最簡單的爬蟲


先介紹,我的環境:

               Ubuntu:18.04(64位)

               IDE(解釋為開發環境,用什麼寫的)

               Python3.6

               注意Python2.X 和Python3.X有些語法問題,看情況而定

               爬蟲網站為'http://www.xiaozhu.com/

         前面說過了request請求,response響應,OK第一個爬蟲完成了,是不是很簡單.不說這麼多了上程式碼.看看效果.這個爬蟲只是請求的網頁<HTML>

 

import requests
#匯入相應的包檔案
headers={
    'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36'
}
#加入請求頭
respones =requests.get('https://bj.xiaozhu.com/','headers=headers')
#輸入網址傳送請求
print(respones)
#請求得到響應,請求成功

      得到:'<Response [200]>',這個是什麼?說明訪問成功.   

  • 這裡就需要咱們要知道些什麼了,訪問是否成功,返回數值為狀態碼什麼意思?

 1XX(資訊類)

該型別狀態碼錶示接收到請求並且繼續處理。

  • 100,客戶端必須繼續發出請求。

  • 101,客戶端要求伺服器根據請求轉換HTTP協議版本。

 2XX(響應成功)

該型別狀態碼錶示動作被成功接收、理解和接受。

  • 200,表明該請求被成功地完成,所請求的資源傳送到客戶端。

  • 201,提示知道新檔案的URL。

  • 202,接受並處理,但處理未完成。

  • 203,返回資訊不確定或不完整。

  • 204,收到請求,但返回資訊為空。

  • 205,伺服器完成了請求,使用者必須復位當前已經瀏覽過的檔案。

  • 206,伺服器已經完成了部分使用者的GET請求。

 3XX(重定向類)

該型別狀態碼錶示為了完成指定的動作,必須接受進一步處理。

  • 300,請求的資源可在多處獲得。

  • 301,本網頁被永久性轉移到另一個URL。

  • 302,請求的網頁被重定向到新的地址。

  • 303,建議使用者訪問其他URL或訪問方式。

  • 304,自從上次請求後,請求的網頁未修改過。

  • 305,請求的資源必須從伺服器指定的地址獲得。

  • 306,前一版本HTTP中使用的程式碼,現已不再使用。

  • 307,宣告請求的資源臨時性刪除。

 4XX(客戶端錯誤類)

該型別狀態碼錶示請求包含錯誤語法或不能正確執行。

  • 400,客戶端請求有語法錯誤。

  • 401,請求未經授權。

  • 402,保留有效ChargeTo頭響應。

  • 403,禁止訪問,伺服器收到請求,但拒絕提供服務。

  • 404,可連線伺服器,但伺服器無法取得所請求的網頁,請求資源不存在。

  • 405,使用者在Request-Line欄位定義的方法不被允許。

  • 406,根據使用者傳送的Accept,請求資源不可訪問。

  • 407,類似401,使用者必須首先在代理伺服器上取得授權。

  • 408,客戶端沒有在使用者指定的時間內完成請求。

  • 409,對當前資源狀態,請求不能完成。

  • 410,伺服器上不再有此資源。

  • 411,伺服器拒絕使用者定義的Content-Length屬性請求。

  • 412,一個或多個請求頭欄位在當前請求中錯誤。

  • 413,請求的資源大於伺服器允許的大小。

  • 414,請求的資源URL長於伺服器允許的長度。

  • 415,請求資源不支援請求專案格式。

  • 416,請求中包含Range請求頭欄位,在當前請求資源範圍內沒有range指示值。

  • 417,伺服器不滿足請求Expect頭欄位指定的期望值。

 5XX(伺服器錯誤類)

該型別狀態碼錶示伺服器或閘道器錯誤。

  • 500,伺服器錯誤。

  • 501,伺服器不支援請求的功能。

  • 502,閘道器錯誤。

  • 503,無法獲得服務。

  • 504,閘道器超時。

  • 505,不支援的http版本。

       這麼多的狀態碼,作為小白來說記不住的,多練習幾個爬蟲,從中積累下,就大部分明白了.