用Netscaler解決網絡爬蟲問題cookie
近來有人問使用ADC來解決網絡爬蟲問題,首先要明確的一點:「在爬蟲與反爬蟲的對弈中,爬蟲必定會勝利。」換言之,只要人類可以正常訪問的網頁,爬蟲在具有同等資源的狀況下就必定能夠抓取到。robots.txt 只是約定,爬蟲遵照或者不遵照徹底在於爬蟲做者的意願。舉個例子,公交車上貼着「請爲老弱病殘孕讓座」,可是大部分人並不見得會遵照。通常來說,只有大的搜索引擎爬蟲會遵照你網站的 robots.txt 協議,其它的爬蟲基本都不會看一眼你的 robots.txt 寫的是什麼。大部分狀況下,反爬蟲的需求是不能影響到網站正常使用的,一個網站的功能性需求必定高於反爬蟲需求,因此大部分網站反爬蟲必定不會噁心到正經常使用戶的使用。
假裝UA
使用代理IP
Cookies處理
驗證碼識別
控制訪問速度
雲主機運行
多線程併發抓取網絡
一般咱們用到的反爬蟲的辦法有:
一、經過HTTP的UA(User-Agent)header來區分
二、經過驗證碼來識別機器
三、經過多線程
經過cookie來驗證
添加變量來存儲cookie的值
併發
設置變量的屬性,名稱爲vari_verify_cookie_global,生命值爲300秒,初始值爲不設置
tcp
進行變量運算
運算名稱爲,選擇剛定義的變量vari_verify_cookie_global,運算方法爲「set」,賦值內容爲SYS.TIME.TYPECAST_TEXT_T.HASH(當前系統時間並做哈希)
ide
編寫Rewrite策略
網站
正常使用my_cookie便可,示例中添加para的cookie是爲了驗證變量賦值是否正確
編寫兩個rewrite策略
搜索引擎
給變量賦值策略
線程
插cookie策略3d
編寫responder策略來驗證cookie是否正確。當用戶攜帶cookie:my_cookie=xxxx時重置tcp鏈接
應用策略
綁定responder策略到vserver
綁定rewrite策略到vserver,注意策略的優先級和後續操做
spider01的優先級爲100,選下一步操做爲next
spider02的優先級爲110,下一步操做爲end
到此完成配置,進行驗證
用戶第一次訪問不帶my_cookie,能夠正常打開頁面,而且Netscaler插入cookie
當再次刷新時即命中responder策略,重置TCP
獲得此頁面說明已經可以成功驗證cookie的值