修改 main.py 裡面的 input_shop_names 參數,放入自己想追蹤的店家 (eg. https://shopee.tw/jouhsuansu, 將 "jouhsuansu" 加到 list 裡面)
user_list = [
{
'user_info': {
'Email': '[email protected]',
'Name': 'Max',
},
'input_shop_names': [
"fulinxuan",
"pat6116xx",
"join800127",
"jouhsuansu",
"...."
],
}
]
Method 1: 使用 pip install 套件
$ pip3 install -r requirement.txt
$ python3 main.py
Method 2: 使用 docker
$ docker build -t shopee_crawler .
$ docker run --name shopee_crawler shopee_crawler
$ docker start shopee_crawler
$ docker cp shopee_crawler:/app/log .
# check the logs
$ docker container logs shopee_crawler
# remove all image
$ docker rmi $(docker images -q)
# remove all container
$ docker container ls -a | awk '{print $1}' | xargs docker rm
⌲ Step 0: Test the IP you're using 5 times.
└── IP: xx.xx.xx.xx
└── IP: xx.xxx.xx.xxx
└── IP: xx.xx.xx.xx
└── IP: xx.xxx.xx.xxx
└── IP: xx.xx.xx.xx
<function CheckIPAddress.__call__> - Time Coast: 1.25s
⌲ Step 1: Total shop detail fetched:
<function ShopDetailCrawler.__call__> - Time Coast: 2.84s
⌲ Step 2: Total pdp detail fetched:
└── add Product Page Detail: 1260
└── add Product Page Detail: 362
└── add Product Page Detail: 768
└── add Product Page Detail: 835
└── add Product Page Detail: 42
└── add Product Page Detail: 282
└── add Product Page Detail: 1172
└── add Product Page Detail: 135
└── add Product Page Detail: 717
└── add Product Page Detail: 25
└── add Product Page Detail: 673
└── add Product Page Detail: 1674
└── add Product Page Detail: 596
<function ProductDetailCrawler.__call__> - Time Coast: 10.11s
⌲ Step 3: Data saved to BigQuery.
<function Crawler.__call__> - Time Coast: 14.20s
.
├── CHANGELOG.md
├── README.md
├── config
│ └── config.py
├── log
│ └── live_shopee_20xx-xx-xx.log
├── main.py
├── requirements.txt
└── view
├── api_v4_get_shop_detail.py
├── api_v4_get_product_detail.py
├── check_ip_pool.py
├── (deprecated)api_v2_get_product_detail.py
├── (deprecated)api_v2_get_product_url.py
├── (deprecated)api_v2_get_shop_detail.py
├── csv
│ ├── pdp_detail.csv
│ └── shop_detail.csv
└── utils.py
- 【爬蟲進階】Concurrency Programming
- 【爬蟲教學】Python GIL & Thread-safe & Atomic
- 【爬蟲教學】Asyncio 協程使用方法
- 【爬蟲教學】Async IO Design Patterns 範例程式
- 【實戰篇】 解析 Python 之父的 web crawler 異步爬蟲
最近老姐在經營蝦皮賣家,為了找到在蝦皮上最佳銷售策略,所以寫了這篇蝦皮賣家競品分析。
此次的目標很簡單,掌握競品情報來提高自己銷售業績:
- 數千個商品,上架優先順序策略
- 商品訂價策略
- 掌握競品營運狀況
首先我們挑選出蝦皮上同產業的競品商家,寫爬蟲程式取得相關公開數據,計算出競品總營業額 (銷售數量 x 銷售單價)。
引流款的意義在於衝評價或是利用免運門檻來提高客單價進行收單。
地雷款基本上此區商品不是主要營收來源,上架商品順序的話,會建議盡量先避開此區商品。
價值款產品還需搭配銷銷售數量或售總交額來交叉看,如果是初期賣家建議在此區挑選銷售數量較多的先上架(如下圖),既可以兼顧衝評價與銷售額。 上架順序:價值款和引流款的優先順序可視個人依比例調整,但盡量避免先上地雷區的產品。
此次要上架的商品是 1尺6 的七星劍,如下圖在左上輸入商品名稱和類型後,可以看到資料庫內此商品銷售總金額為 5,000 元,其中產品訂價在 270 ~ 350 之間。
Step 1 輸入商品名稱 & 商品類型:七星劍和 1尺6 Step 2 確認近期交易過商品訂價:價錢落在 270 ~ 350 之間 Step 3 查看 HashTag 和免運活動:點擊競品商品名稱可以看到資訊
可以選擇指定商家,例如下圖點擊 金龍佛具 4/12日 3,750元,下方欄位則會列出金龍佛具 4/12 日所有銷售商品和類型出來。快速掌握競品每日銷售狀況
週日和週一的銷售狀況表現最差,而週四和週五銷售狀態佳。如果你遇到週日銷售較差,別擔心大家 (佛具產業) 都跟你一樣。
這次的連假 (4/2~4/4 號),可以看到競品銷售狀況表現佳,僅有最後一天 4/4 號的銷售低於水平。
從公開資料中可以獲得總體營收、上架商品數和上架商品均價,而預測客單價和預測客戶購買商品數則是用其他綜合數據推測出來,與實際數字多少會有誤差。
- 總營收
- 上架商品數
- 上架商品均價
- 預測客單價
- 預測客戶購買商品數
評分系統的資料可從 API 拉出來,從資料中可以看出蝦皮除了有使用者介面上的星等 (rating_star) 評價 (1~5分) 外,還額外將評價區分成優良評價 (rating_good)、中立評價 (rating_normal) 和負面評價 (rating_bad)
- 平均評分 (rating_star)
- 優良評價 (rating_good)
- 中立評價 (rating_normal)
- 負面評價 (rating_bad) 猜測在搜尋商品排名中,這三欄應該影響商品排名的重要參數之一,不然不會額外再獨立欄位出來。
- 上架商品優先順序策略
- 引流款 (低價,高需求)
- 地雷款 (低價,低需求)
- 價值款 (高價,低需求)
- 商品訂價策略
- 掌握競品數據
- 日銷售
- 週銷售
- 月銷售
- 銷售相關數據
- 商品評價數據
本篇同步發佈至部落格【數據分析】蝦皮賣家競品分析|Max行銷誌