今年上半年,我在给一家做南亚市场的跨境卖家搭数据系统,第一个硬需求就是:把Daraz店铺的商品详情数据稳定地拉回内部业务库。团队里几个同学的第一反应都出奇一致——写爬虫,模拟浏览器登录,遍历商品详情页。我当时就把这个方案拦下了。倒不是说爬虫一定不能用,而是对Daraz这种体量、这种技术背景的平台来说,页面级爬虫的维护成本会指数级上升,早晚把你拖垮。更合理、也更体面的路子,是走Daraz开放平台的官方API。
这篇文章就把我这次完整接入Daraz API获取商品详情数据的经验摊开来讲,包括为什么弃爬虫选API、接入前要做哪些准备、HMAC-SHA256签名机制是怎么回事、商品详情接口怎么一步步调通,以及我在这个过程中踩过的坑。如果你正准备对接Daraz、Lazada这类阿里系电商开放平台,或者只是想了解电商平台商品数据的标准获取姿势,这篇应该能帮你少走不少弯路。
1. 为什么最终选择官方API:爬虫方案在Daraz上的真实处境
1.1 直接抓页面为什么行不通
我承认,爬虫在一开始确实很诱人——打开商品页,F12看接口,把JSON拉下来,十几行代码就见效。但这个"见效"通常只能维持几天。等到我们真要在Daraz上长期、稳定、大批量地同步商品数据时,问题就全暴露了。
首先,Daraz的商品页是典型的动态渲染页面,商品信息、库存、价格、SKU规格全部由前端脚本请求异步接口再渲染到页面上。你直接requests.get拿到的HTML里,根本找不到真实价格和库存,拿到的一堆JS变量名和混淆过的加载参数。想绕过这个,就得先搞懂它的前端加载链路,用无头浏览器模拟整个渲染过程,速度慢不说,内存占用也大,跑几十个页面就够呛。
其次是风控。Daraz在这块玩得很深,请求频率稍高就会触发验证码,紧接着就是IP层面的临时封禁。我们的采集任务跑到几百上千个商品时,就开始频繁遇到"当前访问量过大"的提示页。后来只能把采集频率压得很低,一个晚上都跑不完几千个SKU,数据时效性完全没法保证。
第三个问题其实是压垮我们的最后一根稻草:平台条款。Daraz的服务条款里明确禁止绕过平台正常机制抓取数据。作为一家正规运营的跨境公司,我不可能拿整个店铺去赌这个风险。一旦被平台判定为恶意采集,轻则限流,重则封店,这对业务来说是毁灭性的。
1.2 官方API的能力边界与适用场景
既然爬虫走不通,那就看官方API能给什么。Daraz开放平台(Open Platform)本质上是给卖家、第三方ERP服务商、代运营团队提供的标准数据通道。你通过认证后,可以拉取自己店铺内的商品列表、商品详情、订单、物流、库存等核心数据。
商品详情这块,官方API能拿到的字段非常完整,基本覆盖了商品页上展示的全部核心信息:
| 数据类别 | 具体字段 |
|---|---|
| 基础信息 | item_id、seller_sku、name、description、category_id、brand |
| 价格信息 | price、special_price、建议零售价 |
| 库存信息 | quantity、状态 |
| 多媒体 | 主图、副图、SKU图 |
| 规格变体 | 变体ID、变体名称、变体SKU、变体价格、变体库存 |
| 状态信息 | active/inactive、创建时间、更新时间 |
但是也要说清楚边界。官方API拿不到的东西同样很多:比如你不能用它去批量抓取别人家店铺的商品数据,接口权限是按卖家维度划定的;用户评论、买家ID这类数据,普通应用默认也拿不到,需要另外申请特定权限。如果你是想做全网商品情报分析、比价抓取,那官方API不适合你,那是另一个领域的事情,本文不展开。
所以,官方API适合谁?适合手里有Daraz店铺、需要把自有商品数据同步到ERP、WMS、数据报表、多平台铺货系统里的卖家和技术服务商。我的这次项目正是这种典型场景:把店铺里几百个SKU的商品信息做成一份实时可查的内部数据源。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 接入前的基础设施:应用创建与三个关键凭证
2.1 注册开发者账号与创建应用
Daraz开放平台是挂在卖家中心体系下的,流程不复杂,但有几个细节容易被忽略。你在Daraz的卖家后台找到开发者选项,进入开放平台后可以看到创建应用的入口。创建应用时需要填写应用名称、类型(自用/第三方服务商)、以及回调地址。
这里要提醒一句:回调地址建议一开始就填真实的生产环境地址,哪怕你还在本地开发阶段,也先用内网穿透或者测试域名顶上,而不是随便填个localhost。 因为OAuth授权流程里,应用身份和回调地址是绑定的,后续新增回调地址在某些版本的后台里要重新审核,等你开发完再改,会白白浪费审核时间。
创建完成后,你会拿到一组核心凭证,这组凭证决定了你之后所有请求能否通过验证:
- App Key:相当于你的应用ID,所有请求里都会带它,让平台知道"你是谁"。
- App Secret:签名密钥,用于计算签名,绝对不能泄露到前端或者公开仓库。
- Access Token:授权后的访问令牌,代表"某个卖家账号允许这个应用访问它的数据"。
三者关系可以类比一张门禁卡:App Key是卡上的编号,App Secret是卡内的加密芯片,Access Token则是这张卡开通了哪些门禁的授权记录。三者配合,平台才能既识别应用身份,又确认用户授权,还要验证请求确实来自持卡人本人。
2.2 Access Token的获取与刷新机制
Access Token不是你在后台手动复制的,而是需要通过OAuth 2.0的授权码流程换取。大致流程是:
- 在应用后台配置应用的授权回调地址。
- 构造授权URL,引导卖家账号所有者点击授权。
- 授权成功后,平台会带着一个临时授权码(code)重定向到你的回调地址。
- 后端用这个code加上App Key和App Secret,请求token接口,换回Access Token和Refresh Token。
这里最容易犯的错是:把Access Token当成长期有效的东西,写死到配置文件里,一用就是几个月。实际上Access Token的有效期通常只有24小时左右,过期后就得用Refresh Token去换新的Access Token。Refresh Token的有效期会长很多,一般是几个月到一年,但也存在失效的情况。所以正确的工程做法是:**封装一个token管理器
