要獲取淘寶商品詳情數(shù)據(jù),有以下幾種合法途徑及技術(shù)實(shí)現(xiàn)方案,需根據(jù)實(shí)際需求和資源選擇
1. 淘寶開放平臺(tái)接入
- 注冊開發(fā)者賬號:訪問 淘寶開放平臺(tái),完成企業(yè)認(rèn)證。
- 創(chuàng)建應(yīng)用并申請接口權(quán)限:
- 基礎(chǔ)接口:
taobao.item.get
(商品基本信息)、taobao.item.desc.get
(商品詳情頁描述) - 高級接口:
taobao.item.sku.get
(SKU 信息)、taobao.item.images.get
(圖片信息)
- API 調(diào)用示例(Python):
import hashlib
import time
import requests
import json
def get_taobao_item_detail(num_iid):
app_key = 'YOUR_APP_KEY'
app_secret = 'YOUR_APP_SECRET'
method = 'taobao.item.get'
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 構(gòu)造請求參數(shù)
params = {
'app_key': app_key,
'method': method,
'timestamp': timestamp,
'format': 'json',
'v': '2.0',
'sign_method': 'md5',
'num_iid': num_iid,
'fields': 'num_iid,title,price,stock,desc,sku,props_name'
}
# 生成簽名
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
params['sign'] = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
# 發(fā)送請求
response = requests.get(
'https://eco.taobao.com/router/rest',
params=params
)
return response.json()
# 使用示例
# 封裝好API供應(yīng)商demo url=o0b.cn/ibrad, wechat id: TaoxiJd 復(fù)制鏈接獲取測試
result = get_taobao_item_detail('1234567890123') # 替換為實(shí)際商品ID
print(json.dumps(result, indent=2, ensure_ascii=False))
2. 數(shù)據(jù)安全與權(quán)限限制
- 基礎(chǔ)權(quán)限:每日調(diào)用量限制(如 5000 次),字段有限(如不含促銷信息)
- 高級權(quán)限:需申請白名單,可能涉及費(fèi)用或業(yè)務(wù)合作
二、Web 頁面解析(需遵守 robots.txt)
1. 商品詳情頁結(jié)構(gòu)分析
- URL 格式:
https://item.taobao.com/item.htm?id=商品ID
- 核心數(shù)據(jù)位置:
- 價(jià)格:
<span class="tb-rmb-num">199.00</span>
- 標(biāo)題:
<h3 class="tb-main-title">商品標(biāo)題</h3>
- 庫存:
<div class="tb-stock"><em id="J_SpanStock">123</em>件</div>
2. Python 爬蟲實(shí)現(xiàn)(示例)
import requests
from bs4 import BeautifulSoup
import re
def parse_taobao_item(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Referer': 'https://www.taobao.com/',
'Cookie': 'your_cookie_here' # 需要登錄態(tài)Cookie
}
response = requests.get(url, headers=headers)
if response.status_code != 200:
return None
soup = BeautifulSoup(response.text, 'html.parser')
# 封裝好API供應(yīng)商demo url=o0b.cn/ibrad, wechat id: TaoxiJd 復(fù)制鏈接獲取測試
# 提取標(biāo)題
title = soup.select_one('h3.tb-main-title')
title = title.text.strip() if title else ''
# 提取價(jià)格
price = soup.select_one('span.tb-rmb-num')
price = float(price.text) if price else 0.0
# 提取庫存(需處理JS動(dòng)態(tài)加載)
stock_match = re.search(r'"quantity":(\d+)', response.text)
stock = int(stock_match.group(1)) if stock_match else 0
return {
'title': title,
'price': price,
'stock': stock
}
# 使用示例
url = 'https://item.taobao.com/item.htm?id=1234567890123' # 替換為實(shí)際商品URL
result = parse_taobao_item(url)
print(result)
三、移動(dòng)端 API
1. 抓包分析
- 工具:Charles、Fiddler 或 mitmproxy
- 關(guān)鍵接口:
taobao/item_password
(商品詳情核心接口)- 請求參數(shù)需包含:
短鏈接
(商品 ID)、淘口令
(設(shè)備 ID)
四、第三方數(shù)據(jù)服務(wù)
1. 萬邦數(shù)據(jù)平臺(tái)
- 優(yōu)點(diǎn):無需開發(fā),直接注冊使用 API
- 缺點(diǎn):可能涉及數(shù)據(jù)合規(guī)風(fēng)險(xiǎn),需確認(rèn)數(shù)據(jù)源合法性
總結(jié):
- 建議方案:
- 優(yōu)先使用官方 API,按業(yè)務(wù)需求申請權(quán)限
- 如需大規(guī)模數(shù)據(jù),考慮與淘寶官方合作
- 爬蟲方案僅用于少量測試,且需嚴(yán)格控制頻率