天天看點

15天學會爬蟲 第一天爬蟲

爬蟲

第一天

1. 爬蟲的用途

1.爬取資料用做網站展示

2.爬取資料用來為大資料或者人工智能服務

2. 什麼是爬蟲?

模拟浏覽器發送請求,擷取相應的資料

3. 爬蟲的分類

3.1 通用爬蟲

搜尋引擎的爬蟲,爬取整個網際網路的資料

3.2 聚焦爬蟲

針對特定網站專門寫的抓取資料的程式

聚焦爬蟲的流程

  1. 準備url清單
  2. 拿到一個url發起請求,擷取響應
  3. 響應提取
    • 提取的是資料,資料儲存
    • 提取的是URL,放入URL清單
rootbots協定: 網站規定搜尋殷勤可以爬取的内容範圍,隻是道德限制

4. 爬蟲程式的響應

爬蟲程式的響應 以url對應的響應為準,不能以elements為準

5. 重要的請求頭

  • Cookie: 儲存使用者登入的憑證,如果要反問登入後的頁面去擷取資料庫,必須攜帶Cookie
  • User—Agent: 表示請求者的身份,反爬的必要手段,每次請求都必須攜帶
  • Referer: 頁面來源處

6. get和post請求的差別

  1. 最直覺的就是語義上的差別,get用于擷取資料,post用于送出資料.
  2. get參數有長度限制(受限于URL長度,具體的數值取決于浏覽器和伺服器的限制),而post無限制
  3. get請求,請求的資料會附加在url之後,以 ? 分割URL和傳輸資料,多個參數用 & 連接配接,而post請求會把請求的資料放置在HTTP 請求體中.
  4. GET的語義是請求擷取指定的資源。GET方法是安全、幂等、可緩存的(除非有 Cache-ControlHeader的限制),GET方法的封包主體沒有任何語義。POST的語義是根據請求負荷(封包主體)對指定的資源做出處理,具體的處理方式視資源類型而不同。POST不安全,不幂等,(大部分實作)不可緩存。為了針對其不可緩存性,有一系列的方法來進行優化,以後有機會再研究(FLAG已經立起)。還是舉一個通俗栗子吧,在微網誌這個場景裡,GET的語義會被用在「看看我的Timeline上最新的20條微網誌」這樣的場景,而POST的語義會被用在「發微網誌、評論、點贊」這樣的場景中。(該條轉載自5的部落格)
  5. 更多資料,請檢視post請求和get請求的差別