爬蟲的基本原理及應用場景

什麼是爬蟲?爬蟲就是使用任何技術手段,批量獲取網站信息的一種方式,關鍵在於批量。說白了其實就是模擬真正用戶去請求獲取大量數據。

下面將介紹爬蟲的方式以及實際應用場景。

目錄

1、爬蟲的方式
2、爬蟲的應用場景
3、反爬蟲策略

爬蟲的方式

爬蟲從網頁交互維度,主要分成 2 種方式,分別是常規爬蟲和自動化爬蟲。

1、常規爬蟲

常規爬蟲也叫裸寫代碼爬蟲,是最原始的一種爬蟲方式。
比如想爬取微博熱搜榜,需要經過 3 個步驟:

1、確定目標地址

分析頁面請求格式 找到微博實時熱搜的網頁地址:https://s.weibo.com/top/summary?cate=realtimehot

2、目標信息解析 

請求到具體頁面後,需要解析頁面裏面的數據,爬取回來的頁面,實際是一堆前端代碼,通過 dom api 去讀取代碼裏面的數據,比如你想要拿到每條熱搜的名稱,那就需要拿到熱搜名稱在網頁 dom 結構中的路徑。

3、數據存儲 

解析出目標信息後,可存入數據庫或者寫入文件中,以備後續使用。

小結:可以看出常規爬蟲,必須要提前知道需要爬取的每個頁面的具體地址,而且只能一個一個網頁地爬取,不能整站爬取;每個頁面都要寫相應的代碼去模擬請求,比較麻煩。

隨着時代的發展,自動化爬蟲框架應運而生。往下看~

2、自動化爬蟲

自動化爬蟲框架有好幾款,下面介紹比較經典的 puppeteer 框架。

puppeteer 是谷歌瀏覽器出的無界面 (headless)chrome 工具,它提供了一個高級的 api 來控制無頭(無界面) 的 chrome。

puppeteer 可以模擬大部分的用戶操作,包括點擊、滾動、懸浮、聚焦等大部分交互,所以只要你知道了一個網站的首頁地址,就可以通過調用 api 去模擬用戶操作來爬取整個網站的數據。

比如你想抓取百度裏面 python 的搜索數據,那隻需要調用 api 模擬鍵盤輸入 “python”=> enter => 點擊搜索項 => 解析爬取內容就可以了。

接下來看下 puppeteer 爬蟲的更多應用場景。

爬蟲的應用場景

前面有說了 puppeteer 自動化爬蟲框架,很多應用場景也是基於 puppeteer 而誕生的。

1、抓取網頁數據 

因爬蟲數據而誕生的產品,比如比價購物、各種熱搜排行、輿情追蹤、新聞追蹤、盜版 vip 視頻網站等等。

2、UI 自動化測試 

因爲 puppeteer 提供了很多模擬用戶操作的 api,所以現在很多公司會基於 puppeteer 來做一些自動化測試,比如想要測試一個前端頁面的兼容性、前端頁面 UI 是否有 bug,只需要模擬執行表單提交、鍵盤輸入等頁面操作。

3、生成頁面截圖和 PDF 

puppeteer 也提供了截圖、生成 pdf 的 api。

4、監控網頁數據 

可通過爬取前端的數據,來監控網站數據是否有異常(比如數據掉 0)。如果數據異常,可發告警到數據人員。

5、監控網頁性能 

它可以捕獲網站的時間線追蹤,以幫助診斷性能問題。

反爬蟲策略

有爬蟲就有可能會有反爬蟲,有些網站的數據比較敏感,不想讓你獲取,這時該公司就會採取各種反爬措施。

1、封鎖 ip

這是比較簡單粗暴的方式,查詢單位時間內請求次數過多的賬號,然後查到賬號的電腦 ip 後,直接屏蔽這臺電腦的訪問,但是誤傷率也比較高,要謹慎使用。

2、把敏感信息用圖片替換

電商平臺的商品價格信息是比較敏感的,有些平臺會把價格型號信息用圖片來代替展示,這樣確實能防住爬蟲,但是隨着機器學習的發展,現在識別圖片的技術越來越強,慢慢的這個處理辦法的效果也不是那麼好了。

3、網頁所見非所得

通過一定的算法規則,把虛假信息和真正信息做下映射,在網頁代碼裏面存的是虛假信息,但是顯示的時候,利用算法規則和 ttf 字體文件映射出真實信息。

4、人工輸入動態碼

有些網站爲了避免被爬,在你訪問頁面之前,比如輸入一個驗證身份且有有效期的動態碼。

5、法律途徑

爬蟲違法嗎?現在的爬蟲在法律層面還是有點擦邊球,爬蟲的官司現在還是有的,通過法律途徑也算是一種保護數據的方式。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/A473qC-6D86HJMVQVeC7vQ