Jumia搜索列表API接口技术解析

4 阅读2分钟

一、接口基础信息

  1. 请求方式:HTTP GET
  2. 认证机制:OAuth 2.0 Bearer Token
  3. 请求地址
https://api.jumia.com/search/v1/list

二、核心请求参数

参数名类型示例值说明
qstring"smartphone"搜索关键词
categoryint123类目ID
pageint1分页页码
sortstring"newest"排序规则(newest/price_asc/price_desc)
max_pricefloat500.0价格上限(单位:本地货币)

三、响应数据结构(JSON格式)

{
  "total_items": 1500,
  "items": [
    {
      "id": "SN12345678",
      "name": "Samsung Galaxy S21",
      "price": 450.99,
      "original_price": 499.99,
      "rating": 4.5,
      "image_url": "https://img.jumia.com/...",
      "seller_info": {
        "id": "SELLER987",
        "name": "TechHub Africa",
        "rating": 4.8
      }
    }
  ],
  "facets": {
    "categories": [
      {"id": 123, "name": "Mobile Phones", "count": 1200}
    ],
    "brands": [
      {"name": "Samsung", "count": 300}
    ]
  }
}

四、Python调用示例

import requests
import pandas as pd

def fetch_jumia_search(keyword, max_pages=3):
    headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
    all_items = []
    
    for page in range(1, max_pages+1):
        params = {
            "q": keyword,
            "page": page,
            "sort": "price_asc"
        }
        response = requests.get(
            "https://api.jumia.com/search/v1/list",
            headers=headers,
            params=params
        )
        
        if response.status_code == 200:
            data = response.json()
            all_items.extend(data['items'])
    
    return pd.DataFrame(all_items)

# 调用示例
df = fetch_jumia_search("wireless headphones")
print(df[['name', 'price', 'rating']].head())

五、关键注意事项

  1. 频率限制

    • 标准API套餐:100次/分钟请求限制
    • 建议添加延时控制:time.sleep(0.5)
  2. 数据字段说明

    • original_price 字段可能为null(无折扣时)
    • 图片URL需拼接完整路径:"https://img.jumia.com" + image_url
  3. 错误处理

if response.status_code == 401:
    raise Exception("Token过期,需刷新凭证")
elif response.status_code == 429:
    print("触发限流,等待重试...")

六、进阶应用场景

  1. 价格监控系统

    # 监控特定商品价格波动
    daily_data = fetch_jumia_search("iPhone 13")
    price_history = daily_data.groupby('id')['price'].agg(['min','max'])
    

  2. 类目分析工具

    # 分析手机类目品牌分布
    phone_data = fetch_jumia_search("", category=123)
    brand_distribution = phone_data['seller_info.name'].value_counts()
    

法律声明:使用API需遵守Jumia开发者协议,禁止爬取用户隐私数据,商业用途需申请企业授权。本文示例仅用于技术学习目的。

(注:实际API参数可能因Jumia版本更新调整,建议查阅最新官方文档:developer.jumia.com