沒錯,當寧為看著視頻中霍志恒的字幕,聽著他擲地有聲的聲音時,大腦里突然出現(xiàn)了一個在解決N-S方程過程中衍生出的互聯(lián)網(wǎng)實用技術(shù)——湍流算法。
這種感覺又很奇特。
就好像視頻中視頻主的那些言語不停的啟發(fā)著他,然后一個完整算法結(jié)構(gòu)便結(jié)合著之前他所汲取的知識,展現(xiàn)在他的腦中。
緊跟著便又是靈感迸發(fā)的感覺。
如果不把這靈感記錄下來,寧為感覺自己會立刻瘋掉。
于是他從床上跳了起來。
“咋了,寧娃娃,是不是被我的文采斐然嚇尿了?”
“呸,你們聊你們的,別理我,我有個想法要記錄下來!”寧為隨口應(yīng)付了徐瑞軒一句,然后坐到了自己的電腦前,飛快的打開了電腦,然后點開瀏覽器。
首先他要確定的是,他腦海中突然出現(xiàn)的這個依托于N-S方程衍生出的湍流算法的確還沒被發(fā)明出來。
很快,寧為便確定了,的確沒有!
因為如果這個湍流算法已經(jīng)問世,大家就不會依然對那些惡意網(wǎng)絡(luò)爬蟲無計可施,只能縫縫補補的處理。
沒錯,此時寧為腦海中蹦出的湍流算法就是專門針對處理惡意網(wǎng)絡(luò)爬蟲的一種智能算法。
互聯(lián)網(wǎng)時代的網(wǎng)絡(luò)上充斥著各種網(wǎng)絡(luò)爬蟲。
所謂網(wǎng)絡(luò)爬蟲其實就是一種按照一定規(guī)則,自動批量抓取網(wǎng)絡(luò)信息的程序跟腳本。最廣泛的應(yīng)用大概就屬搜索引擎,通過網(wǎng)絡(luò)爬蟲技術(shù),這些搜索引擎會以一定的頻率,通過這些網(wǎng)絡(luò)爬蟲將搜集到的信息錄入到數(shù)據(jù)庫中,以保證用戶從引擎入口檢索時,能更多更準確的從互聯(lián)網(wǎng)龐雜的信息中找到仔細想要的東西。
這種類型的網(wǎng)絡(luò)爬蟲一般稱為通用網(wǎng)絡(luò)爬蟲。
另一類則是聚焦爬蟲。
這是一種針對特定網(wǎng)站或者特定信息不停抓取的技術(shù)。
一般來說能夠遵守robots協(xié)議來使用這項技術(shù)都是沒問題的。
但事實上,網(wǎng)絡(luò)上遍布的許多網(wǎng)絡(luò)爬蟲,干的都不是人事。
跟所有人息息相關(guān)網(wǎng)絡(luò)爬蟲案例就是黃牛搶票。
比如全球被各種網(wǎng)絡(luò)爬蟲光顧最多的就是12306。
每到節(jié)假日,尤其是五一、十一、春運這樣的出行高峰,熱門地區(qū)的火車票總會特別難搶,甚至是秒空。而且這個時候12306軟件都很難打開,基本也都是拜這種網(wǎng)絡(luò)爬蟲所賜。
根據(jù)統(tǒng)計,華夏12306點擊量最高峰曾達到59億次/小時,平均每秒就有160多萬次點擊。顯然不是正常用戶能刷出來的數(shù)字。
官方程序也通過各種升級驗證碼,來防止黃牛搶票,甚至有一段時間,那些堪稱變態(tài)級別的驗證碼甚至難到讓一個普通人無所適從。
即便現(xiàn)在推出人票合一的功能了,但無數(shù)搶票軟件依然利用加價購買搶票包的方式提供這種服務(wù)。
除此之外,各大航空公司也是非法網(wǎng)絡(luò)爬蟲的重災(zāi)區(qū),尤其是經(jīng)常放出特價機票的那些航司。幾乎每次特價機票剛一放出就會被這種爬蟲嗅探,然后直接預(yù)定但不付款。
對于航司來說,一般這種特價票預(yù)定之后會有半小時的時間給買家付款,半小時內(nèi)不付款就會再次進入票池,但爬蟲技術(shù)卻能在這些特價票進入到票池后0.01秒之內(nèi)再次搶到手,直到黃牛黨找到愿意加價的買家,用買家身份信息購票并付款。
可以想象不管是12306還是各大航司,都恨透了這種爬蟲。
畢竟黃牛的加價他們一分錢都賺不到,還增加了網(wǎng)絡(luò)負載。
尤其是各大航司,本來是要讓利給客戶,增加客戶粘性的,結(jié)果客戶沒享受到低價票,還會可能因為付了高價,沒享受相對應(yīng)的服務(wù)而惱火。
除了這種網(wǎng)絡(luò)爬蟲之外,還有一些更為惡意的網(wǎng)絡(luò)爬蟲,它們默默的潛伏在網(wǎng)絡(luò)中不斷爬取著各種私人的用戶身份信息,各大連鎖酒店、各種APP的用戶系統(tǒng)等等,都是這些網(wǎng)絡(luò)爬蟲的目標。
可惜的是目前針對這些惡意網(wǎng)絡(luò)爬蟲并沒有太好防御性技術(shù)手段,一般都是依靠各種硬軟件防火墻技術(shù)來進行隔絕。
更讓無數(shù)開發(fā)者為難的是,安全跟便捷性往往無法兼得。
這就好像12306曾經(jīng)出臺的那些讓人崩潰的驗證碼,短暫制止了爬蟲肆虐的同時,也讓無數(shù)普通人暈頭轉(zhuǎn)向。
此時寧為腦海中的湍流算法,卻能在兼顧便利性的同時,解決掉惡意爬蟲肆虐的問題。
用可以理解的語言來表述這種算法的功能大概就是穩(wěn)定態(tài)的數(shù)據(jù)流會在服務(wù)端數(shù)據(jù)接口如同像流水般緩緩正常流動。每一個連接請求都會直接影響這條處于平穩(wěn)態(tài)的數(shù)據(jù)流。就好像平靜流動的河面因為逆流而上的小魚,而形成一個個湍流。
當服務(wù)端配置好湍流算法后,通過升級驗證系統(tǒng),平穩(wěn)態(tài)的數(shù)據(jù)流就能通過無數(shù)次的訪問,來智能判定各種連接請求是正常的還是其他非法請求,并以此判定出網(wǎng)絡(luò)爬蟲在做數(shù)據(jù)爬取,還是正常客戶的正常訪問。
做出區(qū)分之后,算法可以自動將這些爬蟲指向目標直接引向一個數(shù)據(jù)湍流,在這里這些爬蟲只能爬取到各種混亂且龐雜的無效數(shù)據(jù)然后反饋給爬蟲作者。
這一過程如果精心布置還可能直接影響到接收信息的設(shè)備安全,讓這些惡意爬蟲無所遁形。
聽起來似乎很簡單,但這個湍流算法并不簡單,其中包含了許多底層神經(jīng)網(wǎng)絡(luò)跟深度學習算法的內(nèi)容,比如它幾乎同時用到了循環(huán)神經(jīng)網(wǎng)絡(luò)、生成對抗網(wǎng)絡(luò)、深度收縮網(wǎng)絡(luò),各種回歸等。
更有通過N-S方程演繹而來的算法。
很快,寧為便將算法的幾個部分大體記錄在了電腦上。
然后調(diào)出了C語言環(huán)境。
到不是不想用python,畢竟相對于C來說python極為簡單,有許多的包可以直接調(diào)用,就好像一個從來沒學過做飯的人,如果用料理包的話只用微波爐也能做出極為美味的飯菜。
但python沒法滿足寧為的需求,更何況湍流算法很多部分python根本沒包。
而且大一學校開過C語言的課,寧為的成績也還不錯。
當然這個成績不錯,完全不是寧為現(xiàn)在表現(xiàn)出的這樣。
比如曾經(jīng)學習C語言時,讓他分外頭疼的指針跟鏈表,現(xiàn)在卻如同無師自通了一般,用起來揮灑自如。
這個大概就是成長的煩惱吧!