閒聊
在前兩天認識了相關的API事項後,剛好這個鐵人賽也差不多快要結束了。
既然之前都是在學習爬蟲,那最後的幾天我們就來稍微看看什麼是反爬蟲。
反爬蟲
反爬蟲這項技術主要是為了阻擋「惡意爬蟲程式」,同時也可以保護網頁資訊和減輕網頁負擔。
惡意爬蟲
什麼是惡意爬蟲程式呢?
在利用程式自動、大量執行指定操作時,對對方的網頁造成影響,這時候就稱為是「惡意機器人(Bat Bot)」。
- DoS、DDoS
- DoS:阻斷服務敢擊。藉由不當方式占用系統分享資源,干擾正常系統運作。最常見的方式是透過「訊息洪泛(Message Flood) 」,向攻擊對象發送大量且無意義的訊息。
- DDoS:分散式阻斷服務攻擊。利用網路上因為惡意程式而被控制的電腦作為跳板,集中向某一特定的目標密集送出大量且無意義的訊息,藉以把目標電腦的網路資源及系統資源耗盡。
- 非人為的廣告點擊行為
- 異常流量
- 商業機密洩漏
常見反爬蟲機制
- 判斷headers資訊:headers通常透過瀏覽器自動生成,直接透過程式發送請求預設是沒有headers的。
- 使用動態頁面:網頁內容使用動態產生時,對於爬蟲會增加處理網頁結構的「複雜度」。
- 使用者行為判斷:最常見的就是會請你判斷 我不是機器人。
- 模擬真實用戶登錄授權:使用者在登錄時,會將授權(token)加入到瀏覽器的cookies裡面,藉由cookies來判斷使用者是否合法。
- 驗證碼機制:可以在相當程度上,防堵惡意的干擾與攻擊。常見的有:防止高鐵、演唱會大量搶票...等。
- 封鎖代理伺服器及第三方IP:針對惡意攻擊的IP進行封鎖。
結語
爬蟲就有著很多種類了,沒想到反爬蟲的機制也是不少。且碰到不同情況時,還要想想什麼機制比較能有效防堵。
明天我們來簡單的練習一些反爬蟲的技術!
明天!
【Day 29】反爬蟲技術初步認識
參考資料
破解反爬蟲的方法
我不是機器人圖片
驗證圖片
爬蟲又被擋了怎麼辦?常見的反爬蟲處理策略
何謂DOS、DDOS