ABC-MART 熱門鞋款價格歷史分析(Python 可視化展示)
在球鞋市場中,價格波動是一個重要的考量因素。對於想要入手心儀鞋款的消費者來說,了解價格歷史、預測未來價格走勢,可以幫助他們在最佳時機購買球鞋,避免買貴。
本篇文章將結合 ABC-MART 的鞋款價格數據,使用 Python 進行數據爬取、分析和可視化,幫助大家了解熱門鞋款的價格趨勢。
1️⃣ 如何獲取 ABC-MART 鞋款價格數據?
方法 1:使用 Luckdata API(推薦 ✅)
如果你想快速獲取ABC-MART 的價格數據,可以使用 Luckdata API,Luckdata的 Sneaker API 可以直接返回商品價格、庫存、商品圖片等信息。
import requestsAPI_KEY = "your_key" # 替換為你的 API Key
product_url = "https://www.abc-mart.com.tw/product/uwrpdfcb"
api_url = f"https://luckdata.io/api/sneaker-API/get_vpx1?url={product_url}"
headers = {"X-Luckdata-Api-Key": API_KEY}
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
data = response.json()
print(f"鞋款名稱: {data.get('name', 'N/A')}")
print(f"當前價格: {data.get('price', 'N/A')}")
else:
print(f"請求失敗: {response.status_code}")
✅ 優點:無需複雜的爬取邏輯,直接獲取數據
❌ 缺點:需要訂閱 API 額度
方法 2:使用 Python 爬取 ABC-MART 官網數據(適用於個人分析)
如果你不想使用 API,可以使用 BeautifulSoup + Selenium,從 ABC-MART 網站直接爬取價格數據。
import requestsfrom bs4 import BeautifulSoup
url = "https://www.abc-mart.net/shop/g/g12345678/"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
product_name = soup.find("h1", class_="product-title").text.strip()
price = soup.find("span", class_="price").text.strip()
print(f"鞋款名稱: {product_name}")
print(f"當前價格: {price}")
✅ 優點:免費,不受 API 限制
❌ 缺點:可能需要繞過反爬機制,數據存儲較複雜
2️⃣ 採集一段時間的數據,構建價格趨勢
為了分析價格變化,我們需要定期抓取數據,例如每天記錄一次,持續 1~2 個月。
自動記錄數據(每 24 小時爬取一次)
你可以使用 schedule
自動定時運行爬蟲,將數據保存到 CSV
文件中。
import csvimport schedule
import time
def fetch_price():
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
price = soup.find("span", class_="price").text.strip()
with open("sneaker_prices.csv", "a", newline="", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerow([time.strftime("%Y-%m-%d"), price])
print(f"記錄成功: {time.strftime('%Y-%m-%d')} 價格: {price}")
# 設置定時任務(每天 10:00 運行一次)
schedule.every().day.at("10:00").do(fetch_price)
while True:
schedule.run_pending()
time.sleep(60) # 每分鐘檢查一次
✅ CSV 文件示例:
日期 | 價格(NTD) |
---|---|
2024-03-01 | 3200 |
2024-03-02 | 3100 |
2024-03-03 | 3000 |
3️⃣ 數據可視化:繪製價格趨勢圖
當我們收集到足夠的歷史數據後,可以使用 Matplotlib 和 Pandas 繪製價格趨勢圖。
使用 Matplotlib 生成價格折線圖
import pandas as pdimport matplotlib.pyplot as plt
# 讀取數據
df = pd.read_csv("sneaker_prices.csv", names=["日期", "價格"], parse_dates=["日期"])
# 轉換價格為數值
df["價格"] = df["價格"].str.replace("NT$", "").astype(float)
# 繪製折線圖
plt.figure(figsize=(10, 5))
plt.plot(df["日期"], df["價格"], marker="o", linestyle="-", color="b", label="價格走勢")
# 添加標題和標籤
plt.title("ABC-MART 熱門鞋款價格趨勢")
plt.xlabel("日期")
plt.ylabel("價格 (NTD)")
plt.legend()
plt.grid()
# 旋轉 X 軸標籤,使其更易讀
plt.xticks(rotation=45)
# 顯示圖表
plt.show()
4️⃣ 價格分析 & 購買建議
通過價格趨勢圖,我們可以得到以下 市場洞察:
✅ 價格是否呈現下降趨勢?
如果過去 1 個月價格不斷下降,建議等待更低價格再入手。
✅ 是否有週期性促銷?
如果發現某些時間點(如週末、節假日、黑五)價格下降,建議在這些時間點購買。
✅ 庫存 & 價格變化的關係
如果庫存減少,價格可能會上漲。可以結合 Luckdata API 監控庫存,在補貨時迅速下單。
價格預測
我們可以使用 簡單移動平均(SMA) 或 機器學習(如 Prophet) 預測未來價格走勢。
df["SMA_7"] = df["價格"].rolling(window=7).mean()plt.plot(df["日期"], df["價格"], marker="o", label="實際價格")
plt.plot(df["日期"], df["SMA_7"], linestyle="--", color="r", label="7 天均線")
plt.legend()
plt.title("ABC-MART 鞋款價格趨勢 + 預測")
plt.show()
✅ 如果均線向下,意味著價格仍可能下降
✅ 如果均線向上,說明價格可能開始回升
5️⃣ 結論 & 總結
✅ 透過定期抓取 ABC-MART 熱門鞋款價格數據,我們可以構建價格歷史曲線,幫助用戶更好地決策何時購買球鞋。
✅ 結合 Luckdata API 或 Python 爬蟲,可以獲取價格、庫存等信息,實現智慧購物。
✅ 透過 數據可視化 & 趨勢預測,可以判斷市場行情,抓住最低價購買時機。