第25章 網站改版

投票推薦 加入書籤 小說報錯

  周一上午,《數據結構》的大課。

  講台上,頭髮花白的老教授正對著麥克風,把鍊表和二叉樹講得像催眠曲。階梯教室里睡倒了一大片,只有前排幾個立志考研的學霸還在筆耕不輟。

  白宇航坐在後排靠窗的位置,手裡的原子筆在筆記本上飛快勾畫。他沒記筆記,畫的是三個方框。

  左邊一個方框,寫著「萬年曆」;中間一條橫幅LOGO,寫著「天氣預報」;右下角一個小豆腐塊,寫著「股票行情」。

  他把本子往旁邊推了推,撞了一下正把《電腦報》夾在課本里偷看的老三張健,又踢了一腳前排正打瞌睡的老四宛良皓。

  「別睡了,幹活了。」

  張健掃了一眼本子,眉頭皺成個川字:「老六,你這畫的啥?萬年曆?電腦右下角不都有時間嗎?這不脫褲子放屁?」

  「你有本事現在告訴我,下周三是農曆初幾?那天宜動土還是宜嫁娶?」

  張健張了張嘴,噎住了。他又看了一眼右下角的系統時間,那是純純的公曆數字,冷冰冰的。

  「現在的網民,打開瀏覽器除了輸網址,根本不知道幹啥。」白宇航用筆尖點了點那三個框,「咱們得給他們找點事干。這叫『高頻低深度』需求。不用多複雜,但得讓他們每天都想看一眼。看一眼,流量就來了。」

  宛良皓揉著惺忪的睡眼,轉過身趴在桌子上,盯著那張草圖:「道理是這個道理。但這天氣和股票咋整?咱也不能僱人在氣象局門口蹲著啊?還有股票,那得是實時數據,咱也沒這資質。」

  「誰讓你自己產數據了?」白宇航壓低聲音,嘴角掛著一絲壞笑,「咱們做二道販子。中央氣象台官網有數據,新浪財經有實時大盤,咱們寫個爬蟲,給它抓過來,洗乾淨,擺在咱們桌面上、首頁上。」

  「硬搶啊?」宛良皓樂了。

  「讀書人的事,那叫引用。」白宇航合上本子,這活兒看著簡單,其實全是坑。2000年還沒有開發AJAX控制項,想讓用戶的頁面不通過點擊刷新就變數據,得用iframe嵌套,還得配合後端腳本做無感刷新。這技術也就是欺負現在網速慢,大家看不出來。

  下課鈴一響,三人根本沒往食堂走。

  校門口的小賣部,白宇航拎了三桶康師傅紅燒牛肉麵,張健抱了一捆火腿腸,宛良皓扛著兩瓶大可樂,直奔道外新世紀網吧。

  趙建軍正在吧檯算帳,見這陣仗嚇了一跳:「咋的?你們仨位小老闆,想不開了?這是要在我這兒搞抗議?」

  「趙哥,開個包廂,閉關。」白宇航把五十元錢往吧檯上一拍,「這幾天除了上廁所,別讓人打擾我們。對了,開水得管夠。」

  趙建軍一看這架勢就知道是要干正事,反手把五十塊錢扔回給白宇航,二話不說,直接領他們進網吧裡面,把最裡面那個安靜的包廂門打開:「那幾台機器剛換的顯卡,網線路由器也是新的,單獨調過的。缺啥少啥,喊一聲。」

  包廂門一關,方便麵的熱氣和火腿腸的香味混在一起。

  「分工。」白宇航把筆記本攤開,「老四,你負責前端頁面,把這三個模塊給我嵌進首頁去,樣式要跟現在風格統一,別整得一眼看過去,跟牛皮癬似的。老三,你負責寫抓取腳本,先把新浪財經的數據給我摳出來。我負責核心架構和正則規則。」

  「妥了。」

  三個人稀里呼嚕吃完面,鍵盤聲立刻響成一片。

  起初還算順利,萬年曆這種死數據,網上有現成的算法庫,稍微改改就能用,不用抓取。天氣預報的數據源也比較規整,宛良皓那邊前端調試得也挺快。

  問題出在股票上。

  三個小時後,張健把鍵盤一推,那動靜大得差點把空泡麵桶震翻。

  「這特麼沒法干!」張健抓著頭髮,滿臉通紅,「新浪財經這網頁寫的什麼玩意兒?全是table套table,表單套表單沒完了,標籤亂得跟這桶泡麵似的。我定位這個『td』,它下一個數據就跑那個『div』里去了。這怎麼抓?根本就沒有規律!」

  他是個完美主義者,代碼寫得漂亮,但遇到這種不講道理的「屎山」代碼,心態有點崩。

  「抓不全嗎?」白宇航嘴裡叼著半根火腿腸,把椅子滑過來,「我看看。」

  屏幕上是密密麻麻的HTML源碼,新浪財經的頁面為了排版,確實用了無數層表格嵌套,看著讓人眼暈。


  「你是不是在數它是第幾個表格?」白宇航掃了一眼張健的代碼。

  「不數怎麼定位?它又沒ID。」

  「老三,你這是老實人思維、學生思維。」白宇航把火腿腸咽下去,伸手接過鍵盤,「對付流氓代碼,就得用流氓手段。別看結構,看特徵。」

  白宇航的手指在鍵盤上飛快敲擊,切出一個新的腳本窗口。

  「你看這個單股價格,不管它套在幾層表格里,它前後總有固定的字符。比如『最新價』這三個字,後面跟著的一定是數字和小數點。」

  屏幕上出現了一行字符:`preg_match('/最新價.*?(\d+\.\d{2})/',$content,$matches);`

  「這叫正則表達式。」白宇航敲下回車,運行測試。

  屏幕一閃,一行綠色的數字跳了出來:`18.56`。正是當前頁面的最新股價。

  張健愣住了,眼珠子瞪得溜圓,湊近屏幕看了半天:「這就……出來了?你不用管它父節點是誰?」

  「管它爹是誰幹嘛?我要的是數,又不是要認親。」白宇航站起身,把位置讓回去,「有些時候,跳出規則看問題,比死磕規則快得多。剩下的交給你了,照這個思路,把開盤價、漲跌幅都給我摳出來。」

  張健坐在椅子上,看著那行簡潔到甚至有點粗暴的代碼,半天沒動彈。過了好一會兒,他才轉過頭,看著白宇航正在給宛良皓講iframe的局部刷新,嘴裡嘟囔了一句:「老六,你腦子裡裝的到底是啥?這也太特麼野了。」

  「別廢話,趕緊幹活。」白宇航頭也沒回,「今晚收盤前搞不定,你等著,晚飯的火腿腸沒你的份。」

  包廂里再次只剩下鍵盤的敲擊聲,只是這一次,節奏明顯輕快了許多。

章節目錄