科技之锤:章节目录 046 湍流算法
没错,当宁为看着视频中霍志恒的字幕,听着他掷地有声的声音时,大脑里突然出现了一个在解决N-S方程过程中衍生出的互联网实用技术——湍流算法。
这种感觉又很奇特。
就好像视频中视频主的那些言语不停的启发着他,然后一个完整算法结构便结合着之前他所汲取的知识,展现在他的脑中。
紧跟着便又是灵感迸发的感觉。
如果不把这灵感记录下来,宁为感觉自己会立刻疯掉。
于是他从床上跳了起来。
“咋了,宁娃娃,是不是被我的文采斐然吓尿了?”
“呸,你们聊你们的,别理我,我有个想法要记录下来!”宁为随口应付了徐瑞轩一句,然后坐到了自己的电脑前,飞快的打开了电脑,然后点开浏览器。
首先他要确定的是,他脑海中突然出现的这个依托于N-S方程衍生出的湍流算法的确还没被发明出来。
很快,宁为便确定了,的确没有!
因为如果这个湍流算法已经问世,大家就不会依然对那些恶意网络爬虫无计可施,只能缝缝补补的处理。
没错,此时宁为脑海中蹦出的湍流算法就是专门针对处理恶意网络爬虫的一种智能算法。
互联网时代的网络上充斥着各种网络爬虫。
所谓网络爬虫其实就是一种按照一定规则,自动批量抓取网络信息的程序跟脚本。最广泛的应用大概就属搜索引擎,通过网络爬虫技术,这些搜索引擎会以一定的频率,通过这些网络爬虫将搜集到的信息录入到数据库中,以保证用户从引擎入口检索时,能更多更准确的从互联网庞杂的信息中找到仔细想要的东西。
这种类型的网络爬虫一般称为通用网络爬虫。
另一类则是聚焦爬虫。
这是一种针对特定网站或者特定信息不停抓取的技术。
一般来说能够遵守robots协议来使用这项技术都是没问题的。
但事实上,网络上遍布的许多网络爬虫,干的都不是人事。
跟所有人息息相关网络爬虫案例就是黄牛抢票。
比如全球被各种网络爬虫光顾最多的就是12306。
每到节假日,尤其是五一、十一、春运这样的出行高峰,热门地区的火车票总会特别难抢,甚至是秒空。而且这个时候12306软件都很难打开,基本也都是拜这种网络爬虫所赐。
根据统计,华夏12306点击量最高峰曾达到59亿次/小时,平均每秒就有160多万次点击。显然不是正常用户能刷出来的数字。
官方程序也通过各种升级验证码,来防止黄牛抢票,甚至有一段时间,那些堪称变态级别的验证码甚至难到让一个普通人无所适从。
即便现在推出人票合一的功能了,但无数抢票软件依然利用加价购买抢票包的方式提供这种服务。
除此之外,各大航空公司也是非法网络爬虫的重灾区,尤其是经常放出特价机票的那些航司。几乎每次特价机票刚一放出就会被这种爬虫嗅探,然后直接预定但不付款。
对于航司来说,一般这种特价票预定之后会有半小时的时间给买家付款,半小时内不付款就会再次进入票池,但爬虫技术却能在这些特价票进入到票池后0.01秒之内再次抢到手,直到黄牛党找到愿意加价的买家,用买家身份信息购票并付款。
可以想象不管是12306还是各大航司,都恨透了这种爬虫。
毕竟黄牛的加价他们一分钱都赚不到,还增加了网络负载。
尤其是各大航司,本来是要让利给客户,增加客户粘性的,结果客户没享受到低价票,还会可能因为付了高价,没享受相对应的服务而恼火。
除了这种网络爬虫之外,还有一些更为恶意的网络爬虫,它们默默的潜伏在网络中不断爬取着各种私人的用户身份信息,各大连锁酒店、各种APP的用户系统等等,都是这些网络爬虫的目标。
可惜的是目前针对这些恶意网络爬虫并没有太好防御性技术手段,一般都是依靠各种硬软件防火墙技术来进行隔绝。
更让无数开发者为难的是,安全跟便捷性往往无法兼得。
这就好像12306曾经出台的那些让人崩溃的验证码,短暂制止了爬虫肆虐的同时,也让无数普通人晕头转向。
此时宁为脑海中的湍流算法,却能在兼顾便利性的同时,解决掉恶意爬虫肆虐的问题。
用可以理解的语言来表述这种算法的功能大概就是稳定态的数据流会在服务端数据接口如同像流水般缓缓正常流动。每一个连接请求都会直接影响这条处于平稳态的数据流。就好像平静流动的河面因为逆流而上的小鱼,而形成一个个湍流。
当服务端配置好湍流算法后,通过升级验证系统,平稳态的数据流就能通过无数次的访问,来智能判定各种连接请求是正常的还是其他非法请求,并以此判定出网络爬虫在做数据爬取,还是正常客户的正常访问。
做出区分之后,算法可以自动将这些爬虫指向目标直接引向一个数据湍流,在这里这些爬虫只能爬取到各种混乱且庞杂的无效数据然后反馈给爬虫作者。
这一过程如果精心布置还可能直接影响到接收信息的设备安全,让这些恶意爬虫无所遁形。
听起来似乎很简单,但这个湍流算法并不简单,其中包含了许多底层神经网络跟深度学习算法的内容,比如它几乎同时用到了循环神经网络、生成对抗网络、深度收缩网络,各种回归等。
更有通过N-S方程演绎而来的算法。
很快,宁为便将算法的几个部分大体记录在了电脑上。
然后调出了C语言环境。
到不是不想用python,毕竟相对于C来说python极为简单,有许多的包可以直接调用,就好像一个从来没学过做饭的人,如果用料理包的话只用微波炉也能做出极为美味的饭菜。
但python没法满足宁为的需求,更何况湍流算法很多部分python根本没包。
而且大一学校开过C语言的课,宁为的成绩也还不错。
当然这个成绩不错,完全不是宁为现在表现出的这样。
比如曾经学习C语言时,让他分外头疼的指针跟链表,现在却如同无师自通了一般,用起来挥洒自如。
这个大概就是成长的烦恼吧!