速記AI課程-機器學習與演算法概論(二)

ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享

本次分享內容

晚上由ASAP省錢購物網副技術長崔殷豪來分享,他很本土也很有趣,親和力十足,非學院派重實作,我聽得十分開心。

ASAP主打同商品電商中最低價,因此需要透過網路爬蟲(一種自動瀏覽網站並抓取資料之程式),定期搜尋並抓取各大電商網站之商品價格,才能讓消費者總是可以買到價格最低的商品。據崔表示,約兩小時內他們的爬蟲會爬完各大電商網站之幾十萬種商品價格,更新頻率非常高。

傳統爬蟲會遇到一些共同的挑戰。一是各網站(特別是電商)或多或少都會透過不同方式阻擋爬蟲,二是商品數量與電商眾多,要處理的資料量與複雜度都不小,三是電商網站經常改版,原來可以適用的商品資訊標籤或欄位常常失效,需要人工及時調整。最後是爬蟲系統必須穩定,一旦穩定度不足,造成價格無法總是保持最低,那麼消費者就會失去信心。

今天著重的問題,主要是第二項與第三項挑戰。首先,傳統爬商品的方式都是透過人眼辨識商品資訊或價格的位置, 再用CSS Selector解析出網頁資訊。不過,這樣的方式太人工,一旦要爬的網站一多或是網站又改版,一切又須重來。

因此,崔想了一個方法來解決這個問題。首先,由於電商商品網頁多是動態網頁,因此假設有1000個商品網頁HTML,它們只有在商品資訊的內容不同,其他都一模一樣,只要能自動比對出這些商品網頁有哪些地方不一樣,就可以找出商品資訊了。因此崔把所有網頁都用如下的DOM Tree來表示,比對出資料不同的節點,就知道網頁裡面的哪些標籤是商品資訊了。

這個構想實作效果非常好,國內外各種電商,甚至是人力銀行,都可以辨識出重要的資訊。

而且,目前還設有自動監控與修正機制,當某電商網站之爬蟲錯誤率高於某個比例時(多半是網站改版),則會重新自動啟動通用爬蟲再次抓取該網站,並比對新標記與舊標記的內容(如舊標記之價錢是A Tag,新標記是BTag),自動調整相關資訊,完全不用人工介入。

不過,初次爬回來的資料,每個欄位是什麼意義仍需要人工判讀與標示,這是他們下一步努力的目標。

接著是分享如何善用使用者搜尋結果。

崔舉了一個真實案例,2016/8/8早上,公司PM還在為傳統的父親節準備刮鬍刀文案與商品,沒想到當天行動電源搜尋是往常的四倍之多(他稱為搜尋突波),當天中午PM馬上弄出行動電源的文案,結果超級熱賣,其他電商直到8/10才開始行動。原來,2016/8/6,寶可夢正式在台灣上架…

崔利用三天與七天的變化斜率來偵測所謂搜尋突波,而斜率的閾值是可以調整的,以免過度敏感(或不敏感)。

另一個更有趣。現代人多用手機打字,不如電腦方便,因此若有好的搜尋字自動建議,會讓使用者體驗更好。傳統是採用詞頻排序的方式建議,如使用者打了3m,則會看最常出現的3m相關字詞有哪些,以作為建議(如下圖左)。

而崔改用另一種方法。使用者一旦透過某關鍵字搜尋不到時,自然會改用另一個關鍵詞,因此使用者的搜尋歷程基本上就隱含了相關的概念。累積多位使用者的搜尋歷程,並交疊成樹,分析前後關係,就可以找到相關字了。

崔謙稱還有很多可以努力的地方,而我則很期待他下次的分享。

商管 * 科技 | 顧問 + 稽核 | AI X Fraud | baubimedi@gmail.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store