Python采集速卖通商品详情API接口,json数据返回

知名用户180079054739个月前未分类456
以下是一个用于采集速卖通商品详情并返回 JSON 数据的 Python 代码示例。该代码使用了requests库发送请求,并通过解析响应获取商品信息。
python
运行
import requestsimport jsonimport timefrom fake_useragent import UserAgentclass AliExpressProductScraper:
    def __init__(self):
        self.headers = {
            'User-Agent': UserAgent().random,
            'Accept': 'application/json, text/plain, */*',
            'Accept-Language': 'en-US,en;q=0.9',
            'Connection': 'keep-alive',
            'Referer': 'https://www.aliexpress.com/',
        }
        # 速卖通商品详情API基础URL
        self.base_api_url = "https://m.aliexpress.com/aeglodetailweb/api/getProductDetail"

    def get_product_details(self, product_id):
        """
        获取速卖通商品详情
        :param product_id: 商品ID
        :return: 商品详情的JSON数据
        """
        try:
            # 构造请求参数
            params = {
                'productId': product_id,
                'country': 'US',  # 可以根据需要修改国家代码
                'currency': 'USD',  # 可以根据需要修改货币代码
                'language': 'en',  # 可以根据需要修改语言
                'appId': '10000',
                't': str(int(time.time() * 1000)),  # 时间戳
            }

            # 发送请求
            response = requests.get(
                url=self.base_api_url,
                params=params,
                headers=self.headers,
                timeout=10
            )
            
            # 检查响应状态
            if response.status_code == 200:
                # 解析JSON响应
                result = response.json()
                
                # 提取有用的商品信息
                if result.get('success'):
                    product_data = result.get('data', {})
                    # 整理需要的字段
                    product_info = {
                        'product_id': product_id,
                        'title': product_data.get('productTitle'),
                        'price': product_data.get('price', {}).get('formattedPrice'),
                        'original_price': product_data.get('originalPrice', {}).get('formattedPrice'),
                        'seller': {
                            'name': product_data.get('seller', {}).get('sellerName'),
                            'rating': product_data.get('seller', {}).get('positiveRate'),
                            'followers': product_data.get('seller', {}).get('followerCount')
                        },
                        'shipping': {
                            'method': product_data.get('logistics', {}).get('logisticsDesc'),
                            'time': product_data.get('logistics', {}).get('deliveryTimeDesc')
                        },
                        'images': product_data.get('imagePathList', []),
                        'description': product_data.get('description'),
                        'categories': product_data.get('categoryInfo', {}).get('categoryName'),
                        'rating': {
                            'average': product_data.get('evaluation', {}).get('averageStar'),
                            'count': product_data.get('evaluation', {}).get('totalValidNum')
                        },
                        'stock': product_data.get('stockInfo', {}).get('totalAvailQuantity'),
                        'variants': product_data.get('skuInfo', {}).get('skuList', [])
                    }
                    return json.dumps(product_info, ensure_ascii=False, indent=2)
                else:
                    return json.dumps({'error': '获取商品信息失败', 'message': result.get('message')}, indent=2)
            else:
                return json.dumps({'error': f'请求失败,状态码: {response.status_code}'}, indent=2)
                
        except Exception as e:
            return json.dumps({'error': '发生异常', 'message': str(e)}, indent=2)if __name__ == "__main__":
    # 示例用法
    scraper = AliExpressProductScraper()
    # 替换为实际的速卖通商品ID
    product_id = "1005005762792526"
    product_details = scraper.get_product_details(product_id)
    print(product_details)
使用说明:
  1. 首先需要安装必要的库:

bash
pip install requests fake_useragent
  1. 代码说明:
    • 使用了速卖通移动端的 API 接口,相对稳定

    • 随机生成 User-Agent 以避免被识别为爬虫

    • 可通过修改countrycurrencylanguage参数获取不同地区的商品信息

    • 提取了常见的商品信息字段,如标题、价格、卖家信息、物流信息等

  2. 注意事项:
    • 频繁请求可能会导致 IP 被临时封禁,建议添加请求间隔

    • 速卖通的 API 可能会不定期更改,若代码失效可能需要更新 API 地址或参数

    • 商业使用请遵守速卖通的 robots 协议和相关规定,避免法律风险

    • 部分字段可能因商品不同而返回不同的结构,可能需要根据实际情况调整代码

如果需要获取更多字段信息,可以查看 API 返回的完整 JSON 数据,然后在product_info字典中添加相应的字段映射。


相关文章

淘宝拍立淘按图搜索API接口的调用频率有何限制?

淘宝拍立淘按图搜索 API(核心接口如 taobao.image.search)的调用频率限制,核心取决于开发者账号类型、接口权限等级及是否申请配额扩容,且拍立淘作为专项图像搜索接口,其调用...

除了JSON,淘宝店铺商品API接口还支持哪些数据格式?

从技术角度:淘宝店铺商品 API(TOP 开放平台)除 JSON 外,官方固定支持 XML,无其他格式(如 CSV/HTML/protobuf)。一、支持格式(技术)JSON(常用,默认推荐):for...

淘宝 API 上货 / 商品搬家 业务场景实现 + JSON 返回示例

(简单直白、程序员直接可用)一、业务场景说明淘宝 API 上货 / 搬家 = 自动把商品从其他平台(1688、拼多多、抖音、淘宝其他店铺)搬到淘宝店不用人工复制标题、图片、详情、SKU,全自动上架。能...

淘宝商品详情API的常见错误排查有哪些?

调用淘宝商品详情 API(如taobao.item.get)时,会遇到签名错误、权限不足、参数非法等各类问题,排查需遵循 「先校验基础配置,再定位业务逻辑」 的原则。以下是常见错误分类、现象、原因及解...

电商选品 & 商品搬货场景:库存、价格无法实时同步的解决方案

这是无货源店群、铺货软件、跨平台搬货最核心的痛点:选品时看着有货、低价,上架后货源涨价、缺货,导致超卖、亏损、店铺违规。下面给你一套可直接落地、行业通用、API 驱动的完整解决方案,结构清晰、适合写文...

淘宝商品详情 API 的合法性与风险规避指南

淘宝商品详情 API 的合法性与风险规避指南淘宝 / 天猫商品详情相关 API 的使用核心遵循 **「官方授权为唯一合法前提,合规调用为风险规避核心」** 原则,阿里开放平台对 API 的使用场景、调...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。