首頁(yè) 都市

科技之錘

046 湍流算法

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

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

  這種感覺(jué)又很奇特。

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

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

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

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

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

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

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

  很快,寧為便確定了,的確沒(méi)有!

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

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

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

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

  這種類(lèi)型的網(wǎng)絡(luò)爬蟲(chóng)一般稱(chēng)為通用網(wǎng)絡(luò)爬蟲(chóng)。

  另一類(lèi)則是聚焦爬蟲(chóng)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  此時(shí)寧為腦海中的湍流算法,卻能在兼顧便利性的同時(shí),解決掉惡意爬蟲(chóng)肆虐的問(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)槟媪鞫系男◆~(yú),而形成一個(gè)個(gè)湍流。

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

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

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

  聽(tīng)起來(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)沒(méi)學(xué)過(guò)做飯的人,如果用料理包的話(huà)只用微波爐也能做出極為美味的飯菜。

  但python沒(méi)法滿(mǎn)足寧為的需求,更何況湍流算法很多部分python根本沒(méi)包。

  而且大一學(xué)校開(kāi)過(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)的煩惱吧!

  

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