說爬蟲和反爬蟲之間的那些事!爬蟲是搭建大數據平臺的基礎,負責抓取網頁信息,對網頁進行識別、分類和過濾。我們熟悉的電商、搜索、新聞以及各大門戶網站,每天都有強大的爬蟲集群在高負荷運行。他們“和諧地”互相聚合,從新聞和新聞中學習。他們盡最大努力搜索和優化網頁信息,各大研究機構盡最大努力構建數據集。
但是,各大網站不給爬蟲喘息的機會,讓它為所欲為。畢竟內容的價值在任何時候都是顯而易見的,所以才有了爬蟲和反爬蟲的混戰大戲。
沒有一刻放松與爬行者對爬行者的攻防戰。反爬網站要制定反爬策略,就要根據爬蟲的特點來選擇方案。爬蟲有什么特點?腳本+自動化。因此,反對攀爬的毀滅性舉動不超過兩種:
首先,非腳本訪問= >瀏覽器真實性檢測。
第二,非自動化訪問= >訪問用戶的真實性檢測。
由于其運行環境和工作原理,瀏覽器會帶來一些獨特的屬性:有協議協商的頭,有可執行的JavaScript代碼片段。然后基于瀏覽器的真實性檢測,構建防爬黨的第一道堡壘。
反爬蟲黨在競選之初,率先提供了user-agent、content-type、application、I accept-encoding、accept-language、x-forwarded-for、referer等頭部電網。第一批不同于正常瀏覽器標題的爬蟲相繼觸發,瞬間死亡。然而,這種爬行動物不是吃素的!他們用了一招巧妙的瞞天過海的招數,通過偽造表頭迅速突破防線!
反爬者一點也不慌張,在html里加了一個JavaScript腳本礦。因為他的瀏覽器提前知道了地雷的位置,所以可以安全繞過,不影響正常的網頁顯示。然而爬行者并不知情,接連被抓,或殺或傷。直到大殺器Node.js出現,JavaScript才可以直接執行。爬行者終于奮起反擊,再下一城?。?/div>
反爬者未能另作打算,用“單頁應用”的迷宮防御重鑄堡壘。而爬蟲卻因單頁應用的巧妙構造,使盡渾身解數卻分析不出任何數據,手足無措。單頁應用程序主宰了戰場!反攀登者開始了單方面的屠殺,爬行動物的士氣被摧毀了…...
終于,這場戰斗的終結者出現了。他是無頭鉻技術!新技術一出現,爬蟲軍的兵工廠煥然一新:硒元素、傀儡師、幻影JS、CasperJS等重型攻城殺手不斷建功,反爬者潰千里。爬蟲終于鎖定了首戰的勝利!
由于無頭Chrome的出現,反爬者在瀏覽器識別之戰中所向披靡。但勝敗乃兵家常事,東方不亮西方亮。在數據防御的關鍵時刻,反爬者意外發現了一個現象。雖然瀏覽器很難識別,但是人性是貪婪的!人類可以做很多腳本做不到的事情!連人的行為都有固定的規則!就這樣,反攀登者努力了很久,終于再次踏上了戰場!這場戰斗的制高點是靈魂和哲學的雙層拷問:“你到底是不是人?”
第一道防線直指爬蟲的關鍵——貪婪(訪問頻率)!這種每秒10次的高頻訪問請求怎么會發生在一個人類身上,剁!爬行者不得不大幅降低攻擊頻率,反爬者終于松了一口氣。
第二道防線直指爬蟲的痛點——懶惰(固定IP)!最近,數百個請求從同一個IP發出。世界上怎么會有這么無聊的人?砍!正因如此,爬蟲不得不付出巨大的代價購買代理ip。即便如此,反爬蟲仍然可以通過屏蔽公網IP的方式關閉大量代理地址。經過反爬黨的精心運作,敵人的攻勢被逐漸有效地削弱了。
就這樣,爬蟲和反爬蟲的斗爭還在繼續,誰也不會認輸。有時候反爬蟲策略升級,爬蟲策略也會升級。
上一篇:爬蟲運行高級策略就是使用動態ip
下一篇:如何分辨動態ip的類型?