首頁(yè) 都市

科技之錘

046 湍流算法

科技之錘 一桶布丁 2073 2021-06-24 08:30:03

  沒錯(cuò),當(dāng)寧為看著視頻中霍志恒的字幕,聽著他擲地有聲的聲音時(shí),大腦里突然出現(xiàn)了一個(gè)在解決N-S方程過(guò)程中衍生出的互聯(lián)網(wǎng)實(shí)用技術(shù)——湍流算法。

  這種感覺又很奇特。

  就好像視頻中視頻主的那些言語(yǔ)不停的啟發(fā)著他,然后一個(gè)完整算法結(jié)構(gòu)便結(jié)合著之前他所汲取的知識(shí),展現(xiàn)在他的腦中。

  緊跟著便又是靈感迸發(fā)的感覺。

  如果不把這靈感記錄下來(lái),寧為感覺自己會(huì)立刻瘋掉。

  于是他從床上跳了起來(lái)。

  “咋了,寧娃娃,是不是被我的文采斐然嚇尿了?”

  “呸,你們聊你們的,別理我,我有個(gè)想法要記錄下來(lái)!”寧為隨口應(yīng)付了徐瑞軒一句,然后坐到了自己的電腦前,飛快的打開了電腦,然后點(diǎn)開瀏覽器。

  首先他要確定的是,他腦海中突然出現(xiàn)的這個(gè)依托于N-S方程衍生出的湍流算法的確還沒被發(fā)明出來(lái)。

  很快,寧為便確定了,的確沒有!

  因?yàn)槿绻@個(gè)湍流算法已經(jīng)問(wèn)世,大家就不會(huì)依然對(duì)那些惡意網(wǎng)絡(luò)爬蟲無(wú)計(jì)可施,只能縫縫補(bǔ)補(bǔ)的處理。

  沒錯(cuò),此時(shí)寧為腦海中蹦出的湍流算法就是專門針對(duì)處理惡意網(wǎng)絡(luò)爬蟲的一種智能算法。

  互聯(lián)網(wǎng)時(shí)代的網(wǎng)絡(luò)上充斥著各種網(wǎng)絡(luò)爬蟲。

  所謂網(wǎng)絡(luò)爬蟲其實(shí)就是一種按照一定規(guī)則,自動(dòng)批量抓取網(wǎng)絡(luò)信息的程序跟腳本。最廣泛的應(yīng)用大概就屬搜索引擎,通過(guò)網(wǎng)絡(luò)爬蟲技術(shù),這些搜索引擎會(huì)以一定的頻率,通過(guò)這些網(wǎng)絡(luò)爬蟲將搜集到的信息錄入到數(shù)據(jù)庫(kù)中,以保證用戶從引擎入口檢索時(shí),能更多更準(zhǔn)確的從互聯(lián)網(wǎng)龐雜的信息中找到仔細(xì)想要的東西。

  這種類型的網(wǎng)絡(luò)爬蟲一般稱為通用網(wǎng)絡(luò)爬蟲。

  另一類則是聚焦爬蟲。

  這是一種針對(duì)特定網(wǎng)站或者特定信息不停抓取的技術(shù)。

  一般來(lái)說(shuō)能夠遵守robots協(xié)議來(lái)使用這項(xiàng)技術(shù)都是沒問(wèn)題的。

  但事實(shí)上,網(wǎng)絡(luò)上遍布的許多網(wǎng)絡(luò)爬蟲,干的都不是人事。

  跟所有人息息相關(guān)網(wǎng)絡(luò)爬蟲案例就是黃牛搶票。

  比如全球被各種網(wǎng)絡(luò)爬蟲光顧最多的就是12306。

  每到節(jié)假日,尤其是五一、十一、春運(yùn)這樣的出行高峰,熱門地區(qū)的火車票總會(huì)特別難搶,甚至是秒空。而且這個(gè)時(shí)候12306軟件都很難打開,基本也都是拜這種網(wǎng)絡(luò)爬蟲所賜。

  根據(jù)統(tǒng)計(jì),華夏12306點(diǎn)擊量最高峰曾達(dá)到59億次/小時(shí),平均每秒就有160多萬(wàn)次點(diǎn)擊。顯然不是正常用戶能刷出來(lái)的數(shù)字。

  官方程序也通過(guò)各種升級(jí)驗(yàn)證碼,來(lái)防止黃牛搶票,甚至有一段時(shí)間,那些堪稱變態(tài)級(jí)別的驗(yàn)證碼甚至難到讓一個(gè)普通人無(wú)所適從。

  即便現(xiàn)在推出人票合一的功能了,但無(wú)數(shù)搶票軟件依然利用加價(jià)購(gòu)買搶票包的方式提供這種服務(wù)。

  除此之外,各大航空公司也是非法網(wǎng)絡(luò)爬蟲的重災(zāi)區(qū),尤其是經(jīng)常放出特價(jià)機(jī)票的那些航司。幾乎每次特價(jià)機(jī)票剛一放出就會(huì)被這種爬蟲嗅探,然后直接預(yù)定但不付款。

  對(duì)于航司來(lái)說(shuō),一般這種特價(jià)票預(yù)定之后會(huì)有半小時(shí)的時(shí)間給買家付款,半小時(shí)內(nèi)不付款就會(huì)再次進(jìn)入票池,但爬蟲技術(shù)卻能在這些特價(jià)票進(jìn)入到票池后0.01秒之內(nèi)再次搶到手,直到黃牛黨找到愿意加價(jià)的買家,用買家身份信息購(gòu)票并付款。

  可以想象不管是12306還是各大航司,都恨透了這種爬蟲。

  畢竟黃牛的加價(jià)他們一分錢都賺不到,還增加了網(wǎng)絡(luò)負(fù)載。

  尤其是各大航司,本來(lái)是要讓利給客戶,增加客戶粘性的,結(jié)果客戶沒享受到低價(jià)票,還會(huì)可能因?yàn)楦读烁邇r(jià),沒享受相對(duì)應(yīng)的服務(wù)而惱火。

  除了這種網(wǎng)絡(luò)爬蟲之外,還有一些更為惡意的網(wǎng)絡(luò)爬蟲,它們默默的潛伏在網(wǎng)絡(luò)中不斷爬取著各種私人的用戶身份信息,各大連鎖酒店、各種APP的用戶系統(tǒng)等等,都是這些網(wǎng)絡(luò)爬蟲的目標(biāo)。

  可惜的是目前針對(duì)這些惡意網(wǎng)絡(luò)爬蟲并沒有太好防御性技術(shù)手段,一般都是依靠各種硬軟件防火墻技術(shù)來(lái)進(jìn)行隔絕。

  更讓無(wú)數(shù)開發(fā)者為難的是,安全跟便捷性往往無(wú)法兼得。

  這就好像12306曾經(jīng)出臺(tái)的那些讓人崩潰的驗(yàn)證碼,短暫制止了爬蟲肆虐的同時(shí),也讓無(wú)數(shù)普通人暈頭轉(zhuǎn)向。

  此時(shí)寧為腦海中的湍流算法,卻能在兼顧便利性的同時(shí),解決掉惡意爬蟲肆虐的問(wèn)題。

  用可以理解的語(yǔ)言來(lái)表述這種算法的功能大概就是穩(wěn)定態(tài)的數(shù)據(jù)流會(huì)在服務(wù)端數(shù)據(jù)接口如同像流水般緩緩正常流動(dòng)。每一個(gè)連接請(qǐng)求都會(huì)直接影響這條處于平穩(wěn)態(tài)的數(shù)據(jù)流。就好像平靜流動(dòng)的河面因?yàn)槟媪鞫系男◆~,而形成一個(gè)個(gè)湍流。

  當(dāng)服務(wù)端配置好湍流算法后,通過(guò)升級(jí)驗(yàn)證系統(tǒng),平穩(wěn)態(tài)的數(shù)據(jù)流就能通過(guò)無(wú)數(shù)次的訪問(wèn),來(lái)智能判定各種連接請(qǐng)求是正常的還是其他非法請(qǐng)求,并以此判定出網(wǎng)絡(luò)爬蟲在做數(shù)據(jù)爬取,還是正??蛻舻恼TL問(wèn)。

  做出區(qū)分之后,算法可以自動(dòng)將這些爬蟲指向目標(biāo)直接引向一個(gè)數(shù)據(jù)湍流,在這里這些爬蟲只能爬取到各種混亂且龐雜的無(wú)效數(shù)據(jù)然后反饋給爬蟲作者。

  這一過(guò)程如果精心布置還可能直接影響到接收信息的設(shè)備安全,讓這些惡意爬蟲無(wú)所遁形。

  聽起來(lái)似乎很簡(jiǎn)單,但這個(gè)湍流算法并不簡(jiǎn)單,其中包含了許多底層神經(jīng)網(wǎng)絡(luò)跟深度學(xué)習(xí)算法的內(nèi)容,比如它幾乎同時(shí)用到了循環(huán)神經(jīng)網(wǎng)絡(luò)、生成對(duì)抗網(wǎng)絡(luò)、深度收縮網(wǎng)絡(luò),各種回歸等。

  更有通過(guò)N-S方程演繹而來(lái)的算法。

  很快,寧為便將算法的幾個(gè)部分大體記錄在了電腦上。

  然后調(diào)出了C語(yǔ)言環(huán)境。

  到不是不想用python,畢竟相對(duì)于C來(lái)說(shuō)python極為簡(jiǎn)單,有許多的包可以直接調(diào)用,就好像一個(gè)從來(lái)沒學(xué)過(guò)做飯的人,如果用料理包的話只用微波爐也能做出極為美味的飯菜。

  但python沒法滿足寧為的需求,更何況湍流算法很多部分python根本沒包。

  而且大一學(xué)校開過(guò)C語(yǔ)言的課,寧為的成績(jī)也還不錯(cuò)。

  當(dāng)然這個(gè)成績(jī)不錯(cuò),完全不是寧為現(xiàn)在表現(xiàn)出的這樣。

  比如曾經(jīng)學(xué)習(xí)C語(yǔ)言時(shí),讓他分外頭疼的指針跟鏈表,現(xiàn)在卻如同無(wú)師自通了一般,用起來(lái)?yè)]灑自如。

  這個(gè)大概就是成長(zhǎng)的煩惱吧!

  

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁(yè)
返回書頁(yè)
指南