本章節(jié)將開始講述那些廠商為何確保自己的利益是怎么樣進行反爬的.實話說,與對方的反爬措施做斗爭可以稱得上開發(fā)過程中為數(shù)不多的趣味了,同樣也可以說是一種折磨了.
你會見到各種奇妙無比,匪夷所思,令人拍案叫絕的反爬手段。同時你還得絞盡腦汁的去繞過這些.在前面的章節(jié)中,我們提到爬蟲是我們獲取互聯(lián)網信息的一種重要手段,那么有矛必有盾.一方面是千方百計想要爬取數(shù)據的你,另一方面是誓死捍衛(wèi)自己數(shù)據的守護者.一場較量再所難免.......
回到正題,目前市面上的反爬措施很多,也有很多奇妙的,奇特的,惡毒的都有.我們從本質出發(fā),目前市面的大概可以分成這么幾個大類.
- 根據訪問日志,流量,爬取行為以及各種相關算法來判定該行為是不是爬蟲所為,從而觸發(fā)黑名單或者蜜罐系統(tǒng)。例如最為經典的封禁IP和封禁賬號.這一類用途最廣,防范水平要看其判斷策略寫的如何.
- 利用ajax技術,通過js腳本實現(xiàn)動態(tài)渲染的后臺傳輸類.比如說通過JSON實現(xiàn)前端與后端通信.這種有人也許會說這也能算反爬措施?但這種至少你讀取網頁源碼時是得不到數(shù)據的,只能通過抓包等方式解決.這一類基本在需要交互的網站中運用的許多.抓包一般可以用burpsuite,fiddle這類軟件進行抓包.
- 通過瀏覽器環(huán)境,在本地運算js,最終得到所需的數(shù)據的本地js類.因為現(xiàn)在瀏覽器都有內核從而實現(xiàn)了自帶javascript環(huán)境.在本地環(huán)境中即時運算從而得到數(shù)據.從我的經驗來看,這一類是很難對付的,而且即使有解決方案,但效率很低而且爬蟲程序不容易寫.
- 各種找不到形容詞,只能用奇思妙想來形容的反爬類.一些通過圖像混淆,頁面無限循環(huán),給爬蟲投毒等等行為可以歸入此類.
下面的幾個小節(jié),我們就會從上面的幾個點出發(fā),帶你深入的了解一下這個爬蟲中最有趣的環(huán)境以及這個最能折磨人的環(huán)節(jié).