一、準備工作
二、核心步驟與代碼實現
1. 獲取 Access Token
python
運行
import requests
import json
# 開發者配置(替換為自己的信息)
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
GRANT_TYPE = "client_credentials" # 客户端模式
def get_access_token():
url = "https://open.weidian.com/api/token"
params = {
"appkey": APP_KEY,
"appsecret": APP_SECRET,
"grant_type": GRANT_TYPE
}
try:
response = requests.post(url, data=params)
result = json.loads(response.text)
if result.get("errcode") == 0:
return result["access_token"]
else:
print(f"獲取Token失敗:{result['errmsg']}")
return None
except Exception as e:
print(f"請求異常:{e}")
return None
# 獲取Token
access_token = get_access_token()
if access_token:
print(f"Access Token: {access_token}")
2. 採集商品列表數據
python
運行
def get_goods_list(access_token, page=1, page_size=20):
url = "https://open.weidian.com/api/v2/goods/list"
params = {
"access_token": access_token,
"page": page,
"page_size": page_size,
"shop_id": "your_shop_id" # 替換為店鋪ID
}
try:
response = requests.get(url, params=params)
result = json.loads(response.text)
if result.get("errcode") == 0:
goods_list = result["data"]["goods_list"]
return goods_list
else:
print(f"獲取商品失敗:{result['errmsg']}")
return []
except Exception as e:
print(f"請求異常:{e}")
return []
# 獲取商品列表
goods_list = get_goods_list(access_token)
if goods_list:
print(f"共獲取{len(goods_list)}件商品:")
for goods in goods_list:
print(f"商品ID:{goods['goods_id']},名稱:{goods['goods_name']},價格:{goods['price']}")
3. 採集訂單數據
python
運行
def get_order_list(access_token, start_time, end_time, page=1):
url = "https://open.weidian.com/api/v2/order/list"
params = {
"access_token": access_token,
"start_time": start_time, # 開始時間(格式:yyyy-MM-dd HH:mm:ss)
"end_time": end_time, # 結束時間
"page": page,
"page_size": 20,
"shop_id": "your_shop_id"
}
try:
response = requests.get(url, params=params)
result = json.loads(response.text)
if result.get("errcode") == 0:
order_list = result["data"]["order_list"]
return order_list
else:
print(f"獲取訂單失敗:{result['errmsg']}")
return []
except Exception as e:
print(f"請求異常:{e}")
return []
# 獲取訂單列表(示例時間範圍)
order_list = get_order_list(access_token, "2025-12-01 00:00:00", "2025-12-03 23:59:59")
if order_list:
print(f"共獲取{len(order_list)}條訂單:")
for order in order_list:
print(f"訂單號:{order['order_id']},金額:{order['total_amount']},狀態:{order['order_status']}")
三、注意事項
四、數據存儲擴展
python
運行
import csv
# 保存商品數據到CSV
with open("goods_list.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["goods_id", "goods_name", "price"])
writer.writeheader()
writer.writerows(goods_list)