五大電商的爬蟲

Gary Liao
5 min readApr 29, 2021

--

買手機之前最重要的是看清楚功能,星爺手中這支就有刮鬍功能。

星爺這隻手機太脫俗了,我還是選擇買 iPhone 12 Pro 128G,接下來就是查價格,臺灣五大電商 ETMALL、MOMO、PCHOME、SHOPEE、YAHOO,我都各自找到商品頁:

# ETMALL 東森購物
# Apple iPhone 12 Pro 128G 智慧型 5G 手機
# https://www.etmall.com.tw/i/2886010
# MOMO 富邦
# 【Apple 蘋果】iPhone 12 Pro 128G 6.1吋(超值殼貼組)
# https://www.momoshop.com.tw/goods/GoodsDetail.jsp?i_code=8169274
# PCHOME 網路家庭
# Apple iPhone 12 Pro (128G)-太平洋藍(MGMN3TA/A)
# https://24h.pchome.com.tw/prod/DYAJIM-A900B724R
# SHOPEE 蝦皮
# APPLE iPhone 12 Pro 128G 支援5G上網/A14 CPU 送門市現場保貼服務兌換券
# https://shopee.tw/--i.54598032.5857088290
# YAHOO 雅虎
# Apple iPhone 12 PRO 128G 6.1吋智慧型手機
# https://tw.buy.yahoo.com/gdsale/-9205108.html

其實如果只要看一次價格,瀏覽器連過去,事情就結束了,但偏偏我想要寫個排程,天天追蹤,紀錄每天的價格,怎麼辦?

電商的商品頁連結都有個特點,就是一定有自家的商品編號,即便連Amazon也是如此:

https://www.amazon.com/-/zh_TW/dp/B07PTMKYS7/ 

B07PTMKYS7就是這個商品的商品編號。

同理,臺灣五大電商 ETMALL、MOMO、PCHOME、SHOPEE、YAHOO 也都是這樣做的,所以我就寫了一隻爬蟲 (papaprice)放在pypi上,只要輸入商品編號,就可以去把商品名稱與價格抓回來:

from papaprice import Etmall, Momo, Pchome, Shopee, Yahoo

# https://www.etmall.com.tw/i/2886010
etmall = Etmall()
print('etmall', etmall.query('2886010'))
# etmall ('Apple iPhone 12 Pro 128G 智慧型 5G 手機', 32388)

# https://www.momoshop.com.tw/goods/GoodsDetail.jsp?i_code=8169274
momo = Momo()
print('momo', momo.query('8169274'))
# momo ('【Apple 蘋果】iPhone 12 Pro 128G 6.1吋(超值殼貼組)', 33000)

# https://24h.pchome.com.tw/prod/DYAJIM-A900B724R
pchome = Pchome()
print('pchome', pchome.query('DYAJIM-A900B724R'))
# pchome ('Apple iPhone 12 Pro (128G)-太平洋藍(MGMN3TA/A)', 32900)

# https://shopee.tw/--i.54598032.5857088290
shopee = Shopee()
print('shopee', shopee.query('54598032.5857088290'))
# shopee ('APPLE iPhone 12 Pro 128G 支援5G上網/A14 CPU 送門市現場保貼服務兌換券', 32940)

# https://tw.buy.yahoo.com/gdsale/-9205108.html
yahoo = Yahoo()
print('yahoo', yahoo.query('9205108'))
# yahoo ('Apple iPhone 12 PRO 128G 6.1吋智慧型手機', 32600)

雖然可能網站改版,爬蟲就會失效,但目前是有計畫持續更新的。未來還會加入關鍵字搜尋的功能,透過購物網站自己的搜尋功能去找商品!

如果有需要大量爬商品價格,除了查詢之間要有間隔,避免變成DDOS攻擊,建議還要搭配 Proxy 代理伺服器來偽裝 IP 來源,事業才可長可久!

https://brightdata.grsm.io/tw

這邊以最大Proxy服務供應商 Bright Data 為例,她有個功能是偽裝成動態家用網路的IP,類似中華電信配給光纖用戶的IP,透過這個功能,被查詢的網站看到你每個查詢的來源IP都會不同,自然無從防起。

使用方法,我寫在我前一篇文章,有興趣可以參考。

如果對於Proxies服務有興趣,可以聯繫我,或者直接透過連結註冊,會有專人聯繫,會有免費試用額度,可以去體驗看看,雖然是付費服務,但穩定是當然的,免錢的最貴,用免錢的要處理一堆連線失敗的例外,太累人了。

本篇介紹了:

  1. 自製的5大電商爬蟲 https://pypi.org/project/papaprice/
  2. Proxy服務供應商 Bright Data https://brightdata.grsm.io/tw

--

--

Gary Liao
Gary Liao

Written by Gary Liao

我很忙,一秒鐘幾十萬上下。

No responses yet