周一上午,《数据结构》的大课。
    讲台上,头髮花白的老教授正对著麦克风,把炼表和二叉树讲得像催眠曲。阶梯教室里睡倒了一大片,只有前排几个立志考研的学霸还在笔耕不輟。
    白宇航坐在后排靠窗的位置,手里的原子笔在笔记本上飞快勾画。他没记笔记,画的是三个方框。
    左边一个方框,写著“万年历”;中间一条横幅logo,写著“天气预报”;右下角一个小豆腐块,写著“股票行情”。
    他把本子往旁边推了推,撞了一下正把《电脑报》夹在课本里偷看的老三张健,又踢了一脚前排正打瞌睡的老四宛良皓。
    “別睡了,干活了。”
    张健扫了一眼本子,眉头皱成个川字:“老六,你这画的啥?万年历?电脑右下角不都有时间吗?这不脱裤子放屁?”
    “你有本事现在告诉我,下周三是农历初几?那天宜动土还是宜嫁娶?”
    张健张了张嘴,噎住了。他又看了一眼右下角的系统时间,那是纯纯的公历数字,冷冰冰的。
    “现在的网民,打开瀏览器除了输网址,根本不知道干啥。”白宇航用笔尖点了点那三个框,“咱们得给他们找点事干。这叫『高频低深度』需求。不用多复杂,但得让他们每天都想看一眼。看一眼,流量就来了。”
    宛良皓揉著惺忪的睡眼,转过身趴在桌子上,盯著那张草图:“道理是这个道理。但这天气和股票咋整?咱也不能僱人在气象局门口蹲著啊?还有股票,那得是实时数据,咱也没这资质。”
    “谁让你自己產数据了?”白宇航压低声音,嘴角掛著一丝坏笑,“咱们做二道贩子。中央气象台官网有数据,新浪財经有实时大盘,咱们写个爬虫,给它抓过来,洗乾净,摆在咱们桌面上、首页上。”
    “硬抢啊?”宛良皓乐了。
    “读书人的事,那叫引用。”白宇航合上本子,这活儿看著简单,其实全是坑。2000年还没有开发ajax控制项,想让用户的页面不通过点击刷新就变数据,得用iframe嵌套,还得配合后端脚本做无感刷新。这技术也就是欺负现在网速慢,大家看不出来。
    下课铃一响,三人根本没往食堂走。
    校门口的小卖部,白宇航拎了三桶康师傅红烧牛肉麵,张健抱了一捆火腿肠,宛良皓扛著两瓶大可乐,直奔道外新世纪网吧。
    赵建军正在吧檯算帐,见这阵仗嚇了一跳:“咋的?你们仨位小老板,想不开了?这是要在我这儿搞抗议?”
    “赵哥,开个包厢,闭关。”白宇航把五十元钱往吧檯上一拍,“这几天除了上厕所,別让人打扰我们。对了,开水得管够。”
    赵建军一看这架势就知道是要干正事,反手把五十块钱扔回给白宇航,二话不说,直接领他们进网吧里面,把最里面那个安静的包厢门打开:“那几台机器刚换的显卡,网线路由器也是新的,单独调过的。缺啥少啥,喊一声。”
    包厢门一关,方便麵的热气和火腿肠的香味混在一起。
    “分工。”白宇航把笔记本摊开,“老四,你负责前端页面,把这三个模块给我嵌进首页去,样式要跟现在风格统一,別整得一眼看过去,跟牛皮癣似的。老三,你负责写抓取脚本,先把新浪財经的数据给我抠出来。我负责核心架构和正则规则。”
    “妥了。”
    三个人稀里呼嚕吃完面,键盘声立刻响成一片。
    起初还算顺利,万年历这种死数据,网上有现成的算法库,稍微改改就能用,不用抓取。天气预报的数据源也比较规整,宛良皓那边前端调试得也挺快。
    问题出在股票上。
    三个小时后,张健把键盘一推,那动静大得差点把空泡麵桶震翻。
    “这特么没法干!”张健抓著头髮,满脸通红,“新浪財经这网页写的什么玩意儿?全是table套table,表单套表单没完了,標籤乱得跟这桶泡麵似的。我定位这个『td』,它下一个数据就跑那个『div』里去了。这怎么抓?根本就没有规律!”
    他是个完美主义者,代码写得漂亮,但遇到这种不讲道理的“屎山”代码,心態有点崩。
    “抓不全吗?”白宇航嘴里叼著半根火腿肠,把椅子滑过来,“我看看。”
    屏幕上是密密麻麻的html源码,新浪財经的页面为了排版,確实用了无数层表格嵌套,看著让人眼晕。
    “你是不是在数它是第几个表格?”白宇航扫了一眼张健的代码。
    “不数怎么定位?它又没id。”
    “老三,你这是老实人思维、学生思维。”白宇航把火腿肠咽下去,伸手接过键盘,“对付流氓代码,就得用流氓手段。別看结构,看特徵。”
    白宇航的手指在键盘上飞快敲击,切出一个新的脚本窗口。
    “你看这个单股价格,不管它套在几层表格里,它前后总有固定的字符。比如『最新价』这三个字,后面跟著的一定是数字和小数点。”
    屏幕上出现了一行字符:`preg_match(/最新价.*?(\d+\.\d{2})/,$content,$matches);`
    “这叫正则表达式。”白宇航敲下回车,运行测试。
    屏幕一闪,一行绿色的数字跳了出来:`18.56`。正是当前页面的最新股价。
    张健愣住了,眼珠子瞪得溜圆,凑近屏幕看了半天:“这就……出来了?你不用管它父节点是谁?”
    “管它爹是谁干嘛?我要的是数,又不是要认亲。”白宇航站起身,把位置让回去,“有些时候,跳出规则看问题,比死磕规则快得多。剩下的交给你了,照这个思路,把开盘价、涨跌幅都给我抠出来。”
    张健坐在椅子上,看著那行简洁到甚至有点粗暴的代码,半天没动弹。过了好一会儿,他才转过头,看著白宇航正在给宛良皓讲iframe的局部刷新,嘴里嘟囔了一句:“老六,你脑子里装的到底是啥?这也太特么野了。”
    “別废话,赶紧干活。”白宇航头也没回,“今晚收盘前搞不定,你等著,晚饭的火腿肠没你的份。”
    包厢里再次只剩下键盘的敲击声,只是这一次,节奏明显轻快了许多。

章节目录


重生2000,从大学网站开始所有内容均来自互联网,御书屋只为原作者佚名的小说进行宣传。欢迎各位书友支持佚名并收藏重生2000,从大学网站开始最新章节