1. 爬蟲相關概念
1.1 定義
一段根據url爬取網頁獲取有用信息的程序,使用程序模擬瀏覽器向服務器發送請求獲取響應信息
1.2 核心
- 爬取網頁:爬取整個網頁,包含網頁所有內容
- 解析數據:將網頁中的數據進行解析
1.3 難點
爬蟲與反爬蟲之間的博弈
1.4 用途
- 數據分析/人工數據集
- 社交軟件冷啟動
- 輿情監控
- 競爭對手監控
1.5 分類
-
通用爬蟲(無需掌握):爬取的數據大多是無用的 無法根據用戶的需求精准獲取數據
幾乎所有的搜索引擎都是通用爬蟲
一般過程為:訪問網頁—>爬取數據—>存儲數據—>處理數據—>提供檢索服務
本應該根據PageRank算法(參考網站流量、點擊率等指標)進行排名,百度卻競價排名
-
聚焦爬蟲(需要掌握):根據需求實現爬蟲程序 抓取需要的數據
設計思路:
- 確定爬取的網頁——如何獲取url
- 模擬瀏覽器通過HTTP協議訪問url,獲取服務器返回的html代碼——如何訪問
- 解析html字符串(根據一定規則提取需要的數據)——如何解析
1.6 反爬手段
-
User-Agent
User-Agent(用戶代理),簡稱UA,是一個特殊的字符串頭,使得服務器能夠識別客戶使用的操作系統及其版本、CPU類型、瀏覽器及其版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等
-
代理IP
西次代理
快代理
高匿名、匿名和透明代理
1. 使用透明代理,對方服務器可以知道使用了代理並且也知道真實IP
2. 使用匿名代理,對方服務器可以知道使用了代理但是不知道真實IP
3. 使用高匿名代理,對方服務器不知道使用了代理更不知道真實IP
-
驗證碼訪問
驗證碼校驗,防止爬蟲
反制手段:打碼平台——雲打碼平台、超級
-
動態加載頁面
網站返回的是js數據,而不是網頁真實的數據
selenium驅動真實的瀏覽器發送請求
-
數據加密
將數據加密返回
分析js代碼