taobao.item_search_shop 是万邦数据提供的
淘宝/天猫店铺商品全量检索接口,支持通过店铺ID或卖家ID获取所有商品信息。核心能力包括:
🚀 典型应用:某3C品牌通过该API抓取TOP5竞品店铺商品,分析价格区间与销量关系,优化新品定价策略,ROI提升40%。
|
参数名
|
类型
|
说明
|
示例值
|
|
|
String
|
API密钥(万邦数据平台申请)
|
|
|
|
String
|
店铺ID(URL中的数字部分)
|
|
|
|
String
|
卖家ID(商品详情页提取)
|
|
|
|
String
|
排序方式(sales-desc/price-asc)
|
|
import requests
def fetch_shop_products(shop_id, page=1):
params = {
"key": "your_key",
"shop_id": shop_id,
"page": page,
"sort": "sales-desc", # 按销量降序
"format": "jsonu" # 中文友好格式
}
response = requests.get("https://api-gw.onebound.cn/taobao/item_search_shop", params=params)
return response.json()
# 分页获取全量商品
def get_all_products(shop_id):
products = []
page = 1
while True:
data = fetch_shop_products(shop_id, page)
if not data["items"]["item"]:
break
products.extend(data["items"]["item"])
page += 1
return products{
"items": {
"shop_id": "440688975", // 店铺ID
"total_results": 240, // 商品总数
"item": [
{
"num_iid": "583975606695", // 商品ID
"title": "jifeng季风雪茄盒", // 标题
"price": 276.00, // 原价
"promotion_price": 138.00, // 促销价
"sales": 4, // 销量
"pic_url": "https://img.alicdn.com/xxx.jpg" // 主图
}
]
}
}# 定时任务:每日0点更新竞品数据
import schedule
import time
def update_competitor_data():
competitor_shops = ["440688975", "55123456"]
for shop_id in competitor_shops:
products = get_all_products(shop_id)
for p in products:
# 保存到数据库(示例)
db.execute("""
INSERT INTO products (num_iid, title, price, sales)
VALUES (%s, %s, %s, %s)
ON DUPLICATE KEY UPDATE price=VALUES(price), sales=VALUES(sales)
""", (p["num_iid"], p["title"], p["price"], p["sales"]))
schedule.every().day.at("00:00").do(update_competitor_data)
while True:
schedule.run_pending()
time.sleep(1)sales > 1000(高销量)promotion_price < 200(价格敏感区间)category 包含"夏季新款"(季节限定)def select_top_products(products): return [p for p in products if p["sales"] > 1000 and p["promotion_price"] < 200 and "夏季新款" in p["category"]]
# 分布式请求队列(示例)
from concurrent.futures import ThreadPoolExecutor
def process_shop(shop_id):
try:
return get_all_products(shop_id)
except Exception as e:
print(f"处理失败:{shop_id} - {str(e)}")
# 并行处理5个店铺
with ThreadPoolExecutor(max_workers=5) as executor:
results = executor.map(process_shop, ["440688975", "55123456", ...])# 随机延迟(0.5-2秒)
time.sleep(random.uniform(0.5, 2.0))
# 轮换User-Agent
headers = {"User-Agent": fake_useragent.UserAgent().random}from requests_rotating_proxy import RotatingProxyManager proxy_manager = RotatingProxyManager([ "http://user:pass@proxy1.com:8080", "http://user:pass@proxy2.com:8080" ])
Q:如何获取shop_id?
A:淘宝店铺首页URL为
https://shopxxx.taobao.com,其中
xxx即为
shop_id。
Q:返回数据中销量为0?
A:部分商品可能未公开真实销量,建议结合
taobao.item_get接口补充数据。
Q:如何处理分页数据?
A:通过循环递增
page参数,直到
total_results与已抓取数量一致。
stock字段监控畅销商品库存变化🔗 官方文档: 万邦数据API文档🚀 技术交流:关注作者获取分布式爬虫架构设计方案(含反爬中间件实现)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026910/viewspace-3078506/ ,如需转载,请注明出处,否则将追究法律责任。