爬蟲
第一天
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請求的區別