爬蟲
第一天
1. 爬蟲的用途
1.爬取資料用做網站展示
2.爬取資料用來為大資料或者人工智能服務
2. 什麼是爬蟲?
模拟浏覽器發送請求,擷取相應的資料
3. 爬蟲的分類
3.1 通用爬蟲
搜尋引擎的爬蟲,爬取整個網際網路的資料
3.2 聚焦爬蟲
針對特定網站專門寫的抓取資料的程式
聚焦爬蟲的流程
- 準備url清單
- 拿到一個url發起請求,擷取響應
- 響應提取
- 提取的是資料,資料儲存
- 提取的是URL,放入URL清單
rootbots協定: 網站規定搜尋殷勤可以爬取的内容範圍,隻是道德限制
4. 爬蟲程式的響應
爬蟲程式的響應 以url對應的響應為準,不能以elements為準
5. 重要的請求頭
- Cookie: 儲存使用者登入的憑證,如果要反問登入後的頁面去擷取資料庫,必須攜帶Cookie
- User—Agent: 表示請求者的身份,反爬的必要手段,每次請求都必須攜帶
- Referer: 頁面來源處
6. get和post請求的差別
- 最直覺的就是語義上的差別,get用于擷取資料,post用于送出資料.
- get參數有長度限制(受限于URL長度,具體的數值取決于浏覽器和伺服器的限制),而post無限制
- get請求,請求的資料會附加在url之後,以 ? 分割URL和傳輸資料,多個參數用 & 連接配接,而post請求會把請求的資料放置在HTTP 請求體中.
- GET的語義是請求擷取指定的資源。GET方法是安全、幂等、可緩存的(除非有 Cache-ControlHeader的限制),GET方法的封包主體沒有任何語義。POST的語義是根據請求負荷(封包主體)對指定的資源做出處理,具體的處理方式視資源類型而不同。POST不安全,不幂等,(大部分實作)不可緩存。為了針對其不可緩存性,有一系列的方法來進行優化,以後有機會再研究(FLAG已經立起)。還是舉一個通俗栗子吧,在微網誌這個場景裡,GET的語義會被用在「看看我的Timeline上最新的20條微網誌」這樣的場景,而POST的語義會被用在「發微網誌、評論、點贊」這樣的場景中。(該條轉載自5的部落格)
- 更多資料,請檢視post請求和get請求的差別