asap 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017...
TRANSCRIPT
ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享
Ethan Yin-Hao Tsui (崔殷豪)
ASAP省錢購物網 –副技術長
Lead R&D & MIS at uitox.com
2017-11-11 台灣資料科學年會1
大綱
ASAP比價嗶嗶鳥◦ 電商爬蟲簡介
◦ 通用爬蟲:自動學習與偵測商品資料
◦ 自動更新資料樣版
其他數據◦ 使用者搜尋,很重要,用來 即時反應,關鍵字突波偵測
建立相關字
搜尋建議字(Auto-Complete)
2
你知道同一商品,在N個電商會有K個價格嗎?而且價差很大!!!
3
ASAP省錢購物網
讓消費者能在最短時間內,買到價格最低的商品
售價
尋找最低價所花時間
存在最低價
來ASAP省錢購物網
4
5
便宜1
6
便宜2
7
電商爬蟲(Ecommerce
Crawler)關注各平台上,同一個商品的價格
面臨的問題
◦ 要比價的商品數量多
◦ 價格即時性(多久更新一次)
◦ 有很多電商平台要比價,逐一定義抓取資料的標記
◦ 電商網站不定時改設計(影響價格即時性)
◦ 爬蟲系統的穩定性
◦ 被擋的問題8
用眼睛看都很簡單,sample 1
商品名
商品圖
價格
分類
9
眼睛看 Sample - 2
10
眼睛看 Sample - 3
11
眼睛看的方法
用CSS Selector,逐一找出來◦ 商品:#item_title
◦ 價格:#item_main > div.container > div > div.info > div.line > div.payinfo-right > div.point-price > div.value > span.price
◦ 圖片:#item_photo
問題◦ 只看幾頁,不一定對!!!(有些網站,不同分類,可能不一樣)
◦ 對方網站改版怎麼辦?◦ 有很多家電商要爬怎麼辦?
12
有辦法讓電腦自己找嗎?
13
思考:從最源頭下手 –商品頁的產生
動態網頁程式語言
php/JSP/…
商品資料
靜態商品頁Template
HTML
有商品資料的HTML
14
動態程式網頁 –舉例
<html>
…
<div>
<span><%= item.getName()
%></span>
</div>
<div><%= item.getPrice() %></div>
…
</html>15
有資料的HTML 原始碼
<html>
…
<div>
<span>XXX HEPA清淨除濕機</span>
</div>
<div>9,834元</div>
…
</html>16
我們提出的方法 –通用爬蟲自我學習、擷取變動資料特性
◦ 只要是用動態程式產生的網頁
◦ 透過訓練
◦ 就有機會自我學習/擷取動態資料
17
通用爬蟲演算法
N 個商品頁HTML
合併DOM Tree,計算節點以及子樹的亂度,產生差異樹
建構DOM Tree
P1
P2
P3
標記
P1
P2
P3
18
從商品頁的DOM TREE 來看資料 –
資料1,2body
div div.item div
div div.title
div
divdiv.pric
e
span
TextNod
e
NT$9,83
4
XXX HEPA
清淨除濕機
TextNod
e
body
divdiv.ite
mdiv
div div.title
div
divdiv.pric
e
span
TextNod
e
NT$1,87
8
飛X浦黑晶爐 HD4989
TextNod
e
div
全站分類
TextNod
e
退換貨說明
TextNod
e
退換貨說明
19
從商品頁的DOM TREE 來看資料 –
資料3,4body
div div.item div
div div.title
div
divdiv.pric
e
span
TextNod
e
NT$1,24
5
玻璃杯果汁機 MX-
GX1051
TextNod
e
body
divdiv.ite
mdiv
div div.title
div
divdiv.pric
e
span
TextNod
eNT$94
礦泉水6000ml 2入
TextNod
e
div
全站分類
TextNod
e
退換貨說明
TextNod
e
退換貨說明
20
訓練結果
商品編號
Column 1 Column 2 Column 3 …
標記路徑
div > div.item >
span > TextNode
div > div.item >
div.priceinfo >
TextNode
div > div.item > div.photo
1 XXX HEPA清淨除濕機
NT$9,834 <img src=‘…/1.jpg’/>
2 飛X浦黑晶爐HD4989
NT$1,878 <img src=‘…/2.jpg’/>
3 玻璃杯果汁機 MX-
GX1051
NT$1,245 <img src=‘…/3.jpg’/>
4 礦泉水6000ml 2入 NT$94 <img src=‘…/4.jpg’/>
21
實驗結果 –博客來
22
實驗結果 – momo 購物
23
實驗結果 - Lazada
24
實驗結果 - Amazon jp
25
實驗結果 - 1111 人力銀行
我是馬賽克
26
自動更新資料樣版
觸發
N Items
通用爬蟲
N Links
新標記
重新抓
更新標記
ERROR
Date
ERROR
Date
N HTMLs
27
TODO - 做到全自動化
下一步是自動識別每個欄位的意義
◦ 數字,哪一欄是價錢?哪一欄是評分?
◦ 文字,有商品名稱資訊嗎?
◦ 哪個區塊可能是商品圖片呢?
◦ 哪個是分類?
◦ 大約方向
根據版面分佈以及前後節點的關係偵測
28
爬蟲架構
變速派作(可以隨時調節每分鐘的工作量)
工作排程
N個爬蟲worker
工作狀態更新
重打錯誤Link
重新比價
爬蟲狀態監控
+
通用爬蟲
29
其他有用資料 –使用者搜尋
30
使用者搜尋透露…
即時反應,使用者搜尋突波偵測
自動建立相關字
自動補強建議字(Auto-Complete)
31
2016年8月8日
一年一度的父親節,PM可能以為熱賣的會是“刮鬍刀”、“血壓計”、…
但這天最熱門的卻是…行動電源!
From: http://media.animevice.com/uploads/3/31361/570856-pikachu_dizzy_eyes_5_.png 32
即時反應 - 使用者搜尋突波偵測
時間軸
行動電源
搜尋量突波
上
行動電源
文案
其他電商推
行動電源
33
使用者搜尋分析
你會搜尋什麼字?
很多人搜尋:尿布
34
使用者搜尋分析搜尋:尿布
35
自動建立相關字
搜尋歷程:以每一個使用者一定時間內搜尋的字
將搜尋的詞作前處理
累積多位使用者的搜尋歷程
交疊成樹,再分析前後關係
36
自動建立相關字 - 1
因此學習到
◦ 尿布, 紙尿褲, 幫寶適, 紙尿布, 大王尿布
距離是相似的
◦ 另外,其中輸入尿布後,
很常搜尋紙尿褲
◦ 尿布=紙尿褲
37
自動建立相關字 - 2
寶可夢
皮卡丘
神奇寶貝
Pokemon
距離相似,可以聚在一起
38
建議字(Auto-Complete)
39
只用商品名稱產生建議字
40
加上使用者搜尋產生建議字
41
加上使用者搜尋產生建議字 2
沒加上使用者搜尋 加上使用者搜尋
42
加上使用者搜尋產生建議字 3
沒加上使用者搜尋 加上使用者搜尋
43
你有FREESTYLE嗎?
44
資料科學在電商(各)產業
其實還有很多、很多可以做…
只要你(或你的老闆)相信!
就等你◦ 提問
◦ 假設
◦ 設計
◦ 整理數據
◦ 實驗
◦ 測試
◦ 上線驗證成效(所有的理論性的驗證法,比不上讓客戶直接使用 A/B testing)
45
Q&A
Slideshare: https://www.slideshare.net/ethantsui7Facebook: https://www.facebook.com/ethan.tsui.7Email: [email protected]
46