淘宝商品详情数据获取方法

获取淘宝商品详情数据,有以下几种合法途径及技术实现方案,需根据实际需求和资源选择

淘宝开放平台接入

注册开发者账号:访问 淘宝开放平台,完成企业认证。

创建应用并申请接口权限:

基础接口:taobao.item.get(商品基本信息)、taobao.item.desc.get(商品详情页描述)

高级接口:taobao.item.sku.get(SKU 信息)、taobao.item.images.get(图片信息)

获取 AppKey 和 AppSecret,用于 API 签名认证。

API 调用示例(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())


    # 构造请求参数

    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()


    # 发送请求

    response = requests.get(

        'https://eco.taobao.com/router/rest',

        params=params

    )


    return response.json()

# 使用示例

# 封装好API供应商demo url=o0b.cn/ibrad, wechat id: TaoxiJd 复制链接获取测试

result = get_taobao_item_detail('1234567890123')  # 替换为实际商品ID

print(json.dumps(result, indent=2, ensure_ascii=False))

数据安全与权限限制

基础权限:每日调用量限制(如 5000 次),字段有限(如不含促销信息)

高级权限:需申请白名单,可能涉及费用或业务合作

二、Web 页面解析(需遵守 robots.txt)

商品详情页结构分析

URL 格式:https://item.taobao.com/item.htm?id=商品ID

核心数据位置:

价格:199.00

标题:商品标题

库存:123

Python 爬虫实现(示例)

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'  # 需要登录态Cookie

    }


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

    if response.status_code != 200:

        return None


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

    # 封装好API供应商demo url=o0b.cn/ibrad, wechat id: TaoxiJd 复制链接获取测试

    # 提取标题

    title = soup.select_one('h3.tb-main-title')

    title = title.text.strip() if title else ''


    # 提取价格

    price = soup.select_one('span.tb-rmb-num')

    price = float(price.text) if price else 0.0


    # 提取库存(需处理JS动态加载)

    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'  # 替换为实际商品URL

result = parse_taobao_item(url)

print(result)

三、移动端 API

抓包分析

工具:Charles、Fiddler 或 mitmproxy

关键接口:

taobao/item_password(商品详情核心接口)

请求参数需包含:短链接(商品 ID)、淘口令(设备 ID)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容