第25章 网站改版(2/2)
三个人稀里呼嚕吃完面,键盘声立刻响成一片。
起初还算顺利,万年历这种死数据,网上有现成的算法库,稍微改改就能用,不用抓取。天气预报的数据源也比较规整,宛良皓那边前端调试得也挺快。
问题出在股票上。
三个小时后,张健把键盘一推,那动静大得差点把空泡麵桶震翻。
“这特么没法干!”张健抓著头髮,满脸通红,“新浪財经这网页写的什么玩意儿?全是table套table,表单套表单没完了,標籤乱得跟这桶泡麵似的。我定位这个『td』,它下一个数据就跑那个『div』里去了。这怎么抓?根本就没有规律!”
他是个完美主义者,代码写得漂亮,但遇到这种不讲道理的“屎山”代码,心態有点崩。
“抓不全吗?”白宇航嘴里叼著半根火腿肠,把椅子滑过来,“我看看。”
屏幕上是密密麻麻的html源码,新浪財经的页面为了排版,確实用了无数层表格嵌套,看著让人眼晕。
“你是不是在数它是第几个表格?”白宇航扫了一眼张健的代码。
“不数怎么定位?它又没id。”
“老三,你这是老实人思维、学生思维。”白宇航把火腿肠咽下去,伸手接过键盘,“对付流氓代码,就得用流氓手段。別看结构,看特徵。”
白宇航的手指在键盘上飞快敲击,切出一个新的脚本窗口。
“你看这个单股价格,不管它套在几层表格里,它前后总有固定的字符。比如『最新价』这三个字,后面跟著的一定是数字和小数点。”
屏幕上出现了一行字符:`preg_match(/最新价.*?(\d+\.\d{2})/,$content,$matches);`
“这叫正则表达式。”白宇航敲下回车,运行测试。
屏幕一闪,一行绿色的数字跳了出来:`18.56`。正是当前页面的最新股价。
张健愣住了,眼珠子瞪得溜圆,凑近屏幕看了半天:“这就……出来了?你不用管它父节点是谁?”
“管它爹是谁干嘛?我要的是数,又不是要认亲。”白宇航站起身,把位置让回去,“有些时候,跳出规则看问题,比死磕规则快得多。剩下的交给你了,照这个思路,把开盘价、涨跌幅都给我抠出来。”
张健坐在椅子上,看著那行简洁到甚至有点粗暴的代码,半天没动弹。过了好一会儿,他才转过头,看著白宇航正在给宛良皓讲iframe的局部刷新,嘴里嘟囔了一句:“老六,你脑子里装的到底是啥?这也太特么野了。”
“別废话,赶紧干活。”白宇航头也没回,“今晚收盘前搞不定,你等著,晚饭的火腿肠没你的份。”
包厢里再次只剩下键盘的敲击声,只是这一次,节奏明显轻快了许多。