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

46
ASAP 比價嗶嗶鳥爬蟲的秘辛 與其他電商資料分析案例分享 Ethan Yin-Hao Tsui (崔殷豪) ASAP省錢購物網 副技術長 Lead R&D & MIS at uitox.com 2017-11-11 台灣資料科學年會 1

Upload: ethan-yin-hao-tsui

Post on 21-Jan-2018

370 views

Category:

Technology


24 download

TRANSCRIPT

Page 1: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

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

Ethan Yin-Hao Tsui (崔殷豪)

ASAP省錢購物網 –副技術長

Lead R&D & MIS at uitox.com

2017-11-11 台灣資料科學年會1

Page 2: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

大綱

ASAP比價嗶嗶鳥◦ 電商爬蟲簡介

◦ 通用爬蟲:自動學習與偵測商品資料

◦ 自動更新資料樣版

其他數據◦ 使用者搜尋,很重要,用來 即時反應,關鍵字突波偵測

建立相關字

搜尋建議字(Auto-Complete)

2

Page 3: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

你知道同一商品,在N個電商會有K個價格嗎?而且價差很大!!!

3

Page 4: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

ASAP省錢購物網

讓消費者能在最短時間內,買到價格最低的商品

售價

尋找最低價所花時間

存在最低價

來ASAP省錢購物網

4

Page 5: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

5

Page 6: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

便宜1

6

Page 7: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

便宜2

7

Page 8: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

電商爬蟲(Ecommerce

Crawler)關注各平台上,同一個商品的價格

面臨的問題

◦ 要比價的商品數量多

◦ 價格即時性(多久更新一次)

◦ 有很多電商平台要比價,逐一定義抓取資料的標記

◦ 電商網站不定時改設計(影響價格即時性)

◦ 爬蟲系統的穩定性

◦ 被擋的問題8

Page 9: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

用眼睛看都很簡單,sample 1

商品名

商品圖

價格

分類

9

Page 10: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

眼睛看 Sample - 2

10

Page 11: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

眼睛看 Sample - 3

11

Page 12: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

眼睛看的方法

用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

Page 13: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

有辦法讓電腦自己找嗎?

13

Page 14: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

思考:從最源頭下手 –商品頁的產生

動態網頁程式語言

php/JSP/…

商品資料

靜態商品頁Template

HTML

有商品資料的HTML

14

Page 15: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

動態程式網頁 –舉例

<html>

<div>

<span><%= item.getName()

%></span>

</div>

<div><%= item.getPrice() %></div>

</html>15

Page 16: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

有資料的HTML 原始碼

<html>

<div>

<span>XXX HEPA清淨除濕機</span>

</div>

<div>9,834元</div>

</html>16

Page 17: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

我們提出的方法 –通用爬蟲自我學習、擷取變動資料特性

◦ 只要是用動態程式產生的網頁

◦ 透過訓練

◦ 就有機會自我學習/擷取動態資料

17

Page 18: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

通用爬蟲演算法

N 個商品頁HTML

合併DOM Tree,計算節點以及子樹的亂度,產生差異樹

建構DOM Tree

P1

P2

P3

標記

P1

P2

P3

18

Page 19: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

從商品頁的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

Page 20: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

從商品頁的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

Page 21: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

訓練結果

商品編號

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

Page 22: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

實驗結果 –博客來

22

Page 23: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

實驗結果 – momo 購物

23

Page 24: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

實驗結果 - Lazada

24

Page 25: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

實驗結果 - Amazon jp

25

Page 26: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

實驗結果 - 1111 人力銀行

我是馬賽克

26

Page 27: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

自動更新資料樣版

觸發

N Items

通用爬蟲

N Links

新標記

重新抓

更新標記

ERROR

Date

ERROR

Date

N HTMLs

27

Page 28: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

TODO - 做到全自動化

下一步是自動識別每個欄位的意義

◦ 數字,哪一欄是價錢?哪一欄是評分?

◦ 文字,有商品名稱資訊嗎?

◦ 哪個區塊可能是商品圖片呢?

◦ 哪個是分類?

◦ 大約方向

根據版面分佈以及前後節點的關係偵測

28

Page 29: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

爬蟲架構

變速派作(可以隨時調節每分鐘的工作量)

工作排程

N個爬蟲worker

工作狀態更新

重打錯誤Link

重新比價

爬蟲狀態監控

通用爬蟲

29

Page 30: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

其他有用資料 –使用者搜尋

30

Page 31: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

使用者搜尋透露…

即時反應,使用者搜尋突波偵測

自動建立相關字

自動補強建議字(Auto-Complete)

31

Page 32: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

2016年8月8日

一年一度的父親節,PM可能以為熱賣的會是“刮鬍刀”、“血壓計”、…

但這天最熱門的卻是…行動電源!

From: http://media.animevice.com/uploads/3/31361/570856-pikachu_dizzy_eyes_5_.png 32

Page 33: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

即時反應 - 使用者搜尋突波偵測

時間軸

行動電源

搜尋量突波

行動電源

文案

其他電商推

行動電源

33

Page 34: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

使用者搜尋分析

你會搜尋什麼字?

很多人搜尋:尿布

34

Page 35: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

使用者搜尋分析搜尋:尿布

35

Page 36: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

自動建立相關字

搜尋歷程:以每一個使用者一定時間內搜尋的字

將搜尋的詞作前處理

累積多位使用者的搜尋歷程

交疊成樹,再分析前後關係

36

Page 37: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

自動建立相關字 - 1

因此學習到

◦ 尿布, 紙尿褲, 幫寶適, 紙尿布, 大王尿布

距離是相似的

◦ 另外,其中輸入尿布後,

很常搜尋紙尿褲

◦ 尿布=紙尿褲

37

Page 38: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

自動建立相關字 - 2

寶可夢

皮卡丘

神奇寶貝

Pokemon

距離相似,可以聚在一起

38

Page 39: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

建議字(Auto-Complete)

39

Page 40: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

只用商品名稱產生建議字

40

Page 41: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

加上使用者搜尋產生建議字

41

Page 42: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

加上使用者搜尋產生建議字 2

沒加上使用者搜尋 加上使用者搜尋

42

Page 43: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

加上使用者搜尋產生建議字 3

沒加上使用者搜尋 加上使用者搜尋

43

Page 44: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

你有FREESTYLE嗎?

44

Page 45: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

資料科學在電商(各)產業

其實還有很多、很多可以做…

只要你(或你的老闆)相信!

就等你◦ 提問

◦ 假設

◦ 設計

◦ 整理數據

◦ 實驗

◦ 測試

◦ 上線驗證成效(所有的理論性的驗證法,比不上讓客戶直接使用 A/B testing)

45

Page 46: ASAP 比價嗶嗶鳥爬蟲的秘辛與其他電商資料分析案例分享 - 2017 台灣資料科學年會

Q&A

Slideshare: https://www.slideshare.net/ethantsui7Facebook: https://www.facebook.com/ethan.tsui.7Email: [email protected]

46