如何獲取 Invincible 球鞋數據:完整指南

1. 引言

Invincible 是一個知名的球鞋零售商,許多球鞋愛好者希望獲取該網站的商品資訊、庫存狀態和價格變動等數據。這些數據不僅能幫助消費者做出更好的購買決策,也對開發者、數據分析師和電商從業者具有重要價值。

本指南將介紹幾種方法來獲取 Invincible 網站上的數據,包括:

  1. 手動爬取(適用於一般數據採集)

  2. 使用 Python 進行網頁爬取(適用於自動化需求)

  3. 利用第三方 API,如 LuckData(適用於開發者和大規模數據需求)

2. 直接訪問 Invincible 網站

最簡單的方法是直接訪問 Invincible 官網,手動瀏覽商品頁面。對於個別商品,可以直接記錄商品的價格、庫存情況等資訊。然而,這種方法效率低下,適用於一次性查詢,而不適合自動化數據採集。

3. 使用 Python 進行網頁爬取

如果需要自動獲取 Invincible 網站上的商品數據,可以使用 Python 進行網頁抓取。常見的方法包括 requests(適用於靜態網頁)和 Selenium(適用於動態加載網頁)。

3.1 使用 requests + BeautifulSoup(適用於靜態網頁)

import requests

from bs4 import BeautifulSoup

# 目標商品頁面

url = 'https://www.invincible.com.tw/ProductList.aspx?i1=02&i2=01'

# 設置請求頭,模擬瀏覽器訪問

headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.get(url, headers=headers)

if response.status_code == 200:

soup = BeautifulSoup(response.content, 'html.parser')

# 提取商品名稱

products = soup.find_all('div', class_='product_name')

for product in products:

print(product.get_text(strip=True))

else:

print(f"請求失敗,狀態碼: {response.status_code}")

適用情況

  • 適用於靜態頁面,無需模擬用戶交互。

  • 只能獲取 HTML 原始碼中的數據,無法獲取 JavaScript 動態加載的內容。

3.2 使用 Selenium(適用於動態加載網頁)

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

# 指定 ChromeDriver 路徑

service = Service('path_to_chromedriver')

options = webdriver.ChromeOptions()

options.add_argument('--headless') # 無頭模式

driver = webdriver.Chrome(service=service, options=options)

# 訪問 Invincible 網站

driver.get('https://www.invincible.com.tw/ProductList.aspx?i1=02&i2=01')

try:

# 等待商品列表加載

products = WebDriverWait(driver, 10).until(

EC.presence_of_all_elements_located((By.CLASS_NAME, 'product_name'))

)

for product in products:

print(product.text)

finally:

driver.quit()

適用情況

  • 適用於 JavaScript 動態加載的頁面。

  • 需要安裝 ChromeDriver,並可能受到網站反爬蟲機制限制。

4. 使用 LuckData API 獲取 Invincible 數據

如果不想自己爬取數據,使用 LuckData Sneaker API 是一個更簡便的方式。該 API 集成了多個球鞋網站的數據,包括 Invincible,能夠直接返回商品的庫存、價格、圖片等資訊。

4.1 API 介紹

LuckData Sneaker API 提供了一種標準化的方式訪問多個球鞋電商平台的數據。
主要功能包括:

  • 查詢球鞋庫存狀態

  • 獲取商品價格資訊

  • 獲取商品圖片

  • 支援多個網站(如 Invincible、Footlocker、Musinsa 等)

4.2 訂閱方案

LuckData API 提供不同的訂閱級別,適用於不同需求:

方案

價格

每月積分

請求速率

Free

$0.0/月

100/月

每秒 1 個請求

Basic

$18.0/月

12000/月

每秒 5 個請求

Pro

$75.0/月

58000/月

每秒 10 個請求

Ultra

$120.0/月

100000/月

每秒 15 個請求

4.3 API 使用示例(Python)

import requests

# 替換為你的 LuckData API Key

API_KEY = 'your luckdata key'

headers = {

'X-Luckdata-Api-Key': API_KEY

}

# 目標商品頁面 URL

url = 'https://www.invincible.com.tw/Product.aspx?yano=20241203000001&co=115'

# LuckData API 請求地址

api_url = f'https://luckdata.io/api/sneaker-API/get_17un?url={url}'

response = requests.get(api_url, headers=headers)

if response.status_code == 200:

data = response.json()

print(data)

else:

print(f"請求失敗,狀態碼: {response.status_code}")

API 返回示例

{

"success": true,

"data": {

"name": "Nike Air Force 1 Low",

"price": "NT$3,800",

"stock_status": "In Stock",

"image": "https://www.invincible.com.tw/images/product.jpg",

"brand": "Nike",

"release_date": "2024-12-03"

}

}

4.4 常見問題

(1) API Key 無效

如果返回:

{

"success": false,

"error": "Invalid API Key"

}

可能原因:

  • API Key 拼寫錯誤或已過期

  • 帳戶未開通該 API 的權限

解決方案

  • 確保 API Key 正確無誤

  • 在 LuckData 官網檢查 API Key 狀態

(2) 目標 URL 無效

如果返回:

{

"success": false,

"error": "Invalid URL"

}

可能原因:

  • yanoco 參數錯誤

  • Invincible 修改了網頁結構

解決方案

  • 手動訪問 URL 檢查是否有效

  • 更換不同的球鞋 URL 進行測試

(3) 請求頻率限制

如果返回:

{

"success": false,

"error": "Rate limit exceeded"

}

說明請求過於頻繁,超過了當前訂閱計劃允許的速率。

解決方案

  • 降低請求頻率

  • 升級訂閱計劃

5. 總結

獲取 Invincible 的球鞋數據可以採用以下方法:

  1. 手動訪問網站(適用於一次性查詢)

  2. 使用 Python 爬取網頁(適用於自動化抓取)

  3. 利用 LuckData API(適用於開發者和大規模數據需求)