一、API接入準備
1. 注冊開發者賬號
- 訪問京東開放平臺:前往京東開放平臺注冊賬號,完成企業或個人實名認證。
- 創建應用:在控制臺創建應用,獲取App Key和App Secret(用于簽名認證)。
2. 申請API權限
- 搜索接口:在API市場中搜索“商品評論”相關接口(如
jingdong.ware.comment.get
)。 - 提交申請:說明使用場景(如數據分析、競品調研),部分接口需企業資質或額外審核。
二、API調用核心技術解析
1. 接口基本信息
- 接口名稱:
jingdong.ware.comment.get
(商品評價查詢) - 請求方式:HTTPS GET/POST
- 基礎URL:
https://api.jd.com/routerjson
2. 必填參數
參數名 | 必填 | 說明 | 示例值 |
---|---|---|---|
app_key | 是 | 應用標識(開放平臺獲取) | your_app_key |
timestamp | 是 | 當前時間戳(格式:YYYY-MM-DD HH:mm:ss ) | 2025-07-21 10:00:00 |
sign | 是 | MD5簽名(生成方法見下文) | A1B2C3D4E5F6G7H8 |
skuId | 是 | 商品SKU ID(從商品鏈接中提取) | 100012345678 |
page | 否 | 頁碼(默認1) | 1 |
pageSize | 否 | 每頁數量(最大50) | 40 |
sortType | 否 | 排序方式(1=時間倒序,5=點贊降序) | 1 |
3. 簽名生成方法
scss
體驗AI代碼助手
代碼解讀
復制代碼
python def generate_sign(params, app_secret): sorted_params = sorted(params.items(), key=lambda x: x[0]) sign_str = app_secret for k, v in sorted_params: sign_str += f"{k}{v}" sign_str += app_secret return hashlib.md5(sign_str.encode()).hexdigest().upper()
三、調用示例(Python)
python
體驗AI代碼助手
代碼解讀
復制代碼
python import requests import hashlib import time from urllib.parse import quote app_key = "your_app_key" app_secret = "your_app_secret" sku_id = "100012345678" def build_request_params(sku_id, page=1, page_size=10): params = { "method": "jingdong.ware.comment.get", "app_key": app_key, "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"), "format": "json", "v": "2.0", "sign_method": "md5", "skuId": sku_id, "page": page, "pageSize": page_size, "sortType": 1 # 按時間倒序 } params["sign"] = generate_sign(params, app_secret) return params def fetch_jd_comments(sku_id): all_comments = [] page = 1 while True: params = build_request_params(sku_id, page=page) response = requests.post( "https://api.jd.com/routerjson", data=params, headers={"Content-Type": "application/x-www-form-urlencoded"} ) data = response.json() if data.get("code") != 0 or not data.get("data"): break comments = data["data"].get("comments", []) if not comments: break all_comments.extend(comments) page += 1 time.sleep(1) # 避免頻率過高 return all_comments # 示例調用 comments = fetch_jd_comments(sku_id) for idx, comment in enumerate(comments[:5]): # 打印前5條評論 print(f"評論{idx+1}:{comment.get('content')}")
四、響應數據解析
1. 成功響應示例
css
體驗AI代碼助手
代碼解讀
復制代碼
json { "code": 0, "message": "success", "data": { "total": 12500, "page": 1, "pageSize": 10, "comments": [ { "userId": "user123456", "userNick": "京東會員_abc123", "rating": 5, "content": "手機運行流暢,拍照效果超出預期", "creationTime": "2025-06-28 14:30:22", "pictures": [ "https://img10.360buyimg.com/n1/s450x450_jfs/t1/250000/30/12345/123456/66d12345Eabcd1234/1234567890abcdef.jpg" ], "replies": [ { "replyUserId": "jd_official", "replyContent": "感謝您的認可,我們將持續優化服務", "replyTime": "2025-06-29 10:15:30" } ] } ] } }
2. 關鍵字段說明
content
:評論內容rating
:評分(1-5星)creationTime
:評論時間pictures
:用戶上傳的圖片鏈接replies
:商家回復內容及時間
五、注意事項
頻率限制:
- 免費版:每分鐘不超過200次。
- 企業版:可申請提升配額,需聯系平臺。
分頁處理:通過循環
page
參數獲取全部數據,總頁數可通過total
字段計算。錯誤處理:
401
:Token失效,需重新獲取access_token
。400
:參數錯誤,檢查skuId
、page
等參數。
數據清洗:
- 評論內容可能包含HTML標簽,需用正則表達式清洗。
- 圖片鏈接需驗證有效性,避免存儲無效資源。
六、替代方案
- 第三方工具:使用
Taobaoapi2014
等提供的API服務,簡化調用流程。 - 數據抓取:通過合法途徑模擬瀏覽器行為,但需遵守平臺規則,避免高頻請求。
通過以上步驟,您可高效接入京東商品評論API,實現評論數據的自動化獲取與分析。如有疑問,可在評論區交流.