反爬技術研究 — 網站常用的反爬技術有哪些?
user-agent
- 數據請求頭,最初級的反爬,只要在請求中模擬請求頭即可輕鬆飄過。
驗證碼
- 驗證碼是最常用的反爬蟲措施,但簡單驗證碼通過機器學習自動識別,通常正確率能達到50%以上甚至更高。
- 複雜驗證碼通過提交到專門的打碼平臺進行人工打碼,依據驗證碼的複雜度,打碼工人平均每碼收1-2分錢,成本比較低。也同樣容易被繞過,使得數據容易被爬取。
封IP
- 這是最有效也最容易誤殺的方案。該策略建立在 IP 稀有的前提下,目前通過代理池購買,ADSL,或者撥號 VPS 等方式,可以低成本獲取數十萬的 IP 池,導致單純的封IP策略效果越來越差。
滑塊驗證
- 滑塊驗證結合了機器學習技術,只需要滑動滑塊,而不用看那些複雜到有時人眼也無法分辨的字母。但由於部分廠商實現時校驗算法較爲簡單,導致經常只需要相對簡單的模擬滑動操作就能繞過,從而使得數據被惡意爬取。
- 類似案例:淘寶,阿里雲,淘寶聯盟
關聯請求上下文
- 反爬蟲可以通過 Token 或網絡請求上下文是否進行了完整流程的方式來判斷是否真人訪問。但對具有協議分析能力的技術人員來說進行全量模擬並沒有太大困難。
- 類似案例:知乎,百度登錄過程。
JavaScript 參與運算
- 簡單的爬蟲無法進行 js 運算,如果部分中間結果需要 js 引擎對 js 進行解析和運算,那麼就可以讓攻擊者無法簡單進行爬取。但爬蟲開發者依然可以通過自帶 js 引擎模塊或直接使用 phantomjs ,chrome等無端瀏覽器進行自動化解析。
提高數據獲取成本
- 當面對的是職業選手時,只能通過提升對方人力成本來實現,比如代碼混淆、動態加密方案、假數據,混淆數據等方式,利用開發速度大於分析速度的優勢,來拖垮對方的意志。如果對方咬定不放鬆,那隻能持續對抗,直到一方由於機器成本或人力成本放棄。
- 典型案例:汽車之家字體替換,去哪兒網網隱藏在CSS元素座標中
- https://blog.csdn.net/zwq912318834/article/details/80243056
- https://blog.csdn.net/zwq912318834/article/details/80268149