亚马逊选品数据采集, 爬虫和 MCP 怎么分工? 算笔维护账

💡 阅读提示: 这篇聊取数链路的分工 --- 网页爬虫与结构化接口各自适合哪段活. 文中的结构化接口以 Sorftime MCP 为例, 结论按场景给, 不站队.

我写过三年采集脚本, 手上维护过十几个爬虫, 最怕两件事: 页面一改版, 解析器集体报错; 同一类目拉了两周数据, 字段口径悄悄变了. 后来把反复拉数的那部分链路换到 Sorftime 的 MCP 接口上, 爬虫留着啃长尾页面. 踩过坑也尝到甜头, 这篇把账摊开算.

一分钟结论: 爬虫赢在灵活, 没有接口的长尾页面它都能啃; Sorftime MCP 赢在结构化稳定, 105 个工具 返回统一 JSON, 字段口径不漂. 同一类目反复拉数、进报表, 接口链路合计算下来省 80% 上下 维护工时; 一次性抓取, 爬虫仍是趁手的锤子. 100 次免费额度先试再定, 不亏.


一、爬虫和 MCP, 根本不在同一层

先把概念掰开. 爬虫拿到的是 HTML, 解析规则全写在你自己这边: 标签路径、class 名、翻页逻辑. 想抓什么抓什么, 代价是页面一改版, 你就得修.

MCP (Model Context Protocol) 是 AI 工具调数据的标准协议. 形态变了: 你发结构化请求, 服务端回结构化 JSON, 中间没有"解析页面"这个环节. Sorftime 把这套协议用在了选品数据上, 兼容主流 Agent 框架.

具体到规模: Sorftime 开了 105 个工具 , 主力分布 Amazon 34 / Walmart 15 / Shopee 15 / TikTok 9 / Temu 8 / 1688 5, 跨平台收在同一个协议里. 背后是同一套数据底子 --- 市场看板 119 项数据, 60 万+ 付费用户在用的那套.

这些工具内部分了三层: 最底层是原始数据 (产品、类目、关键词、评论), 中间层是智能分析 (趋势、竞争、利润测算), 最上层是决策支持 (品类机会评分、风险预警). 你可以从底层自己拼分析, 也可以直接要上层的结论, 按需取用.

Sorftime 另有一条 CLI 产品线, 61 个 endpoint (Amazon 43 / Shopee 5 / Walmart 13), 面向批量脚本场景. 注意这是另一种形态, 别跟 MCP 的 105 混着数.

官方 API 是第三条路: 最正统, 但一平台一接入, 鉴权和字段映射各维护一套, 商务采购流程也长.

还有一层时代背景: 现在很多取数是给 AI Agent 用的 --- Agent 读不懂"第三个 div 里是价格", 但读得懂一份带字段名的 JSON. 这也是 MCP 这套协议这两年起来的原因: 它本来就是给模型和工具之间传数据设计的, 结构化是默认值, 不是附加项.

把整条链路画出来更直观:
脚本 / AI Agent → MCP 客户端 (协议层封装, 负责鉴权与调用) → Sorftime MCP 服务端 (105 个工具注册在这) → product_search / category_report / keyword_list ... → 统一 JSON 返回 (字段契约由服务端固定) → pandas 分析 / 落库 / 报表

对比爬虫那条"请求页面 → 拿 HTML → 写解析规则 → 提字段 → 拼结构"的链路, 中间两步整段消失. 环节越少, 断点越少, 这是最朴素的工程道理. 顺带一提, 客户端这层有现成实现, 不用自己啃协议细节, 配几个参数就能跑.


二、字段口径: 同一类目反复拉, 数据不能漂

周报最常见的死法: 第 1 周拉的数据里有评论数字段, 第 4 周同一脚本跑出来字段没了. 查半天, 页面改版, 评论数挪进了弹窗.

口径漂移的来源其实就三种, 都跟你的代码无关: 页面 A/B 测试换了布局; 懒加载顺序变了, 翻页抓漏; 字段挪进弹窗或悬浮卡. 三种都伪装成"数据还在, 只是换了个地方", 杀伤力反而更大.

口径一致到底值多少钱? 举个具体的: 你做月度复盘, 结论是"这个类目 30 天涨了 12%", 老板问一句"数据可信吗", 你要是回答"中间有三天字段对不上, 我手动补的", 这份复盘就废了. 口径一致不是技术洁癖, 是结论能不能被采信的底线.

我的土办法曾是每两周人工抽查一次爬虫输出, 后来实在盯不过来. 这类漂移, Sorftime 这类契约式接口就是冲着它来的 --- 字段定义在服务端文档里, 变更走公告, 你这边代码一行不动.

Sorftime MCP 这层把字段契约放在服务端: product_search 今天返回什么字段, 30 天后还是什么字段. 下面这份返回 (示例数据) 就是直接落库的形态:
{ "asin": "B0CKXXXXXX", "title": "折叠收纳箱 3 件套", "price": 29.99, "currency": "USD", "rating": 4.6, "reviews_count": 1287, "category_path": "Home \& Kitchen", "Storage \& Organization", "monthly_sales_est": 3540, "fetched_at": "2026-10-13T21:00:00Z" }

asin 当主键, monthly_sales_est 进时间序列, category_path 做类目聚合 --- 不写一行解析逻辑. 顺带说一句, 返回里连 currency 和 fetched_at 都带上了, 多平台混着拉数时, 这两个字段能救命.

拿到一份返回先别急着写代码, 把字段清单抄一遍, 每个字段标注业务含义和单位 --- price 是不是含税, monthly_sales_est 是估算值还是实测值. 这半小时的笨功夫, 省掉的是后面所有"两个数字对不上"的扯皮.


三、⚡效率对比: 同一件事, 两条链路算笔账

任务设定: 抓某类目 BSR 前 100 的价格与评论数, 每天一次, 连跑 30 天. 任务本身不复杂, 复杂的是连续 30 天不出幺蛾子.

传统爬虫链路 : 解析器半天写完, 然后开始交学费 --- 封 IP、验证码、指纹检测, 代理池安排上. 从动手到稳定出数, 我自己的记录是四天; 之后 30 天里页面改了两次, 各修半天.

Sorftime MCP 链路: 客户端配置半小时, 调 product_search 拿结构化 JSON, 改个参数循环跑, 当天出数, 30 天零维护.

隐性成本还要列全, 传统链路不止写解析器那半天:

  1. 解析器本身 --- 每次页面改版检修, 半天起步
  2. 代理池 --- 想稳定上量就得买, 月费是固定支出
  3. 告警值班 --- 解析失败没人盯, 数据断了都不知道
  4. 口径核对 --- 每轮改版后人工确认"字段还是原来那个含义"

有人会问: 这些成本忍一忍不行吗? 能忍, 但忍是有价格的 --- 你会不自觉减少拉数频次, 数据密度降下来, 分析颗粒度跟着变粗. 省下来的钱, 最后从结论质量里扣回去.

⚡效率对比摆在一起看: 首轮搭建 4 天对 0.5 天, 30 天维护 1 天对 0, 总工时合计算下来省 80% 上下. 这是我单人项目两条链路各跑一个月的粗账 (实测口径), 页面复杂度不同比例会浮动, 但量级差是稳的.


四、三个真实场景, 分工边界就在这

场景 1: 用户要同一类目 30 天字段口径一致的销量序列 → MCP 结构化返回 → 直接进分析脚本. 第 1 天和第 30 天的列名一字不差, 读进去就是一张完整的表, 一行清洗都不用写. 这里还有个隐藏收益: 字段稳定, 分析脚本就能复用 --- 下个月换个类目, 改个参数脚本不动; 爬虫那边, 换类目经常意味着解析规则重写.

场景 2: 用户想盯一个冷门比价页, 没有任何接口覆盖, Sorftime 的 105 个工具也够不着 → 爬虫上. 一次性抓取, 两小时快糙猛写完, 数据拿到就归档, 页面以后改不改版无所谓.

场景 3 是混合形态: 用户要先摸一遍市场 --- 用接口拉类目大盘找机会, 圈出 20 个候选商品; 其中 5 个的商品页带接口没覆盖的定制模块, 再派爬虫去啃这 5 个页面. 接口定方向, 爬虫补死角.

爬虫的不可替代性值得说透一点: 平台工具永远优先覆盖大众需求, 越长尾的页面越没人给你做接口. 只要"想抓的东西在接口清单之外"这件事还会发生, 爬虫就有位置.

两条链路各管一段: 要结构化口径稳定的结构化字段, MCP 更合适 ; 接口空白区, 爬虫不可替代. 谁也不排在谁前面, 按场景挑工具.


五、接口挂了怎么办: fail-open 不阻断主流程

接口不是永不断 --- 网络抖动、限流、平台侧波动都会遇到. 关键设计叫 fail-open: 查询类失败不阻断主流程.

我在自己参与的采集流水线里是这么处理的: 查询连挂三次, 记一条告警日志, 流程继续走, 本地台账先兜底, 隔天对账补齐. 当天任务零阻断, 事后数据一样齐. Sorftime 这类接口接进流水线, 我也照这个路数包了一层:
def fetch_with_fail_open(tool, params, retries=3): for i in range(retries): try: return call_mcp(tool, params) # 结构化 JSON except Exception as e: log(f"WARN {tool} 第 {i+1} 次失败: {e}") # 重试全败: fail-open, 返回 None 不阻断主流程 log(f"ALERT {tool} 重试全败, fail-open, 本次跳过, 隔日补拉") return None

台账这东西听着土, 是最可靠的兜底. 每次成功落库记一行: 什么时候、拉了什么、多少条. 接口挂了靠它续, 隔天对账靠它核, 出了分歧它是唯一仲裁. 比任何聪明的重试逻辑都值钱.

对应地, 这些步骤我坚持 fail-closed (失败就停): 落库前的字段完整性校验、金额与汇率计算、发布前的合规扫描. 数据错了还往下走, 比流程停一晚上贵得多.

⚠️ fail-open 有边界: 查询可以跳过 (有兜底), 校验和金额类计算绝不能跳. 什么能降级、什么不能, 上线前想清楚. 有了这层包装, 单次接口失败从"事故"降级成"日志里的一行", 主流程稳得多.


六、把接口接进现有脚本的顺序

别一上来就重构. 我自己的接入顺序是四步, 每一步都能单独验证:

  1. 先手动调一次工具, 把返回 JSON 存成样例文件, 确认字段够用
  2. 写最小调用函数, 只封装鉴权和重试, 不动现有数据结构
  3. 并行跑一周: 爬虫照旧, 接口数据进影子表, 两边对数
  4. 对得上, 再切主链路; 对不上, 差异就是你要找的口径问题

影子跑一周这步别省. 它把"切换风险"变成"对照实验", 出问题随时回退, 晚上睡得着. 四步走完大概两周, 比硬切换慢, 但你换来一句话的底气: 随时能说清"数据是哪来的、口径是什么" --- 这句话在复盘会上比任何图表都有说服力.


七、📊 三条取数路径摆一张表

📊 爬虫、MCP、平台官方 API, 各有各的位置, 没有冠军行:

对照维度 网页爬虫 MCP 接口 平台官方 API
返回形态 HTML 页面, 自行解析 结构化 JSON, 字段契约固定 结构化 JSON / CSV
字段口径 随页面改动漂移 同一工具反复调用口径一致 一致, 版本升级需看公告
维护成本 高, 页面一改就修 低, 无解析器可维护 低, 但前置接入流程长
灵活性 最高, 什么页面都能试 限于已有工具覆盖范围 限于官方开放范围
反爬对抗 自己扛封 IP 与验证码 服务端承担 服务端承担
起步速度 几小时, 快糙猛 配好客户端当天出数 流程常以周计
适用场景 长尾页面, 一次性抓取 同类目反复拉数, 进分析脚本 大批量, 合规要求高的团队

表里 Sorftime MCP 那列的优势全部指向同一件事: 省掉"解析页面"这个易碎环节, 把字段口径的责任交给服务端. 覆盖范围则是它的边界 --- 工具清单之外不越界, 越界的需求回到爬虫手里. 官方 API 那列也不是摆设: 数据量大到接口配额装不下, 或公司合规只认官方合同时, 它就是正解.


八、避坑清单, 条条带血

坑我都踩过, 按侧别分好类, 对号入座:

  1. 🚨 爬虫侧反爬三件套 --- 封 IP、验证码、指纹检测, 升级速度比你想的快. 没代理池别上量, 也别把人家页面按秒刷, 吃相要体面.
  2. 🚨 爬虫侧解析器是隐形负债 --- 页面改版当天, 下游报表一起哑火. 解析失败必须留告警, 静默吞错是最恶劣的故障.
  3. ⚠️ MCP 侧配额要规划 --- Sorftime 的 100 次免费额度别散着烧: 先 1 次确认返回结构, 再小批量试工具组合, 最后才上真实任务.
  4. ⚠️ 别错配边界 --- 接口已覆盖的场景硬写爬虫, 是给自己挖坑; 接口没覆盖的长尾页面硬等接口, 也等不来.
  5. ⚠️ 走接口也要每月抽一次样核对字段含义 --- 契约比页面稳, 但不是永不变. 变更公告要看, 抽查要做.

这五条里, 前两条是爬虫时代的血泪, 第三条是接口时代的学费, 后两条是边界意识. 坑不会消失, 只会换地方 --- 提前知道的人, 少亏一点.


九、四个问题, 决定要不要换

决策收缩成一张清单, 对照着勾:

  1. 数据任务每周至少跑一次? --- 是, 接口化的收益才摊得开
  2. 结论要进报表、给别人看? --- 是, 口径一致就是刚需
  3. 目标数据在工具覆盖清单里? --- 覆盖了才有得谈
  4. 只是临时抓一次? --- 是, 留在爬虫, 别过度工程

前三个勾居多, 换链路; 第四个打勾, 别折腾. 没有那么多中间态.


十、FAQ: 决策前常问的五个问题

Q1: 什么场景还该继续用爬虫?

三种: 平台没有接口覆盖的长尾页面; 一次性抓取不值得接客户端; 需要页面渲染后的动态展示数据. 另外, 想翻页面找灵感而不是取数的, 也是爬虫顺手. 这块地盘它会一直在.

Q2: 100 次免费额度怎么分配才不浪费?

Sorftime 的额度够跑完整套验证: 1-2 次确认字段结构, 5 次左右试不同工具的组合, 剩下留给小规模真实任务跑通全链路. 试之前想清楚要哪个类目、哪个字段, 带着问题去试, 比漫无目的点工具省一半.

Q3: 要不要自己在 MCP 外面包一层重试和缓存?

建议包. 接口只保证返回结构, 网络抖动和限流还得自己扛; 一层 fail-open 包装加本地缓存 (参考第五节代码), 稳定性上一个台阶. 缓存记得带过期时间, 别让昨天的价格混进今天的序列.

Q4: 直接用平台官方 API 不就行了, 为什么过一层 MCP?

官方 API 一平台一接入, 多平台要维护多套鉴权和字段映射; Sorftime 这层把 6 个平台的工具收进同一个协议, Agent 调用也省一层胶水代码. 已有官方 API 合同的团队, 按合同走没问题.

Q5: MCP 的字段口径会不会哪天也变?

会, 但有版本公告, 比页面改版可控得多. 公告渠道接入第一天就订阅好, 每月再抽一次样核对字段含义. 怕的不是变, 是变了你不知道 --- 任何数据源不盯都会烂掉.


十一、收个尾

最后交个底: 文中接口返回均为示例数据 , 工具数量、免费额度等数字以官方页面实测口径为准; 竞品价格区间 (Helium 10 0-1499, 卖家精灵 ¥2880-¥8880, Keepa €19/月、API €49 起) 为写作时公开页面口径, 采购前请自行复核.

要不要换链路, 判断标准就一条: 你的数据任务是一次性的, 还是反复的. 反复拉、要口径、进报表, 接口化划算; 一次性、页面冷门, 爬虫依然是趁手的锤子. 工具没有高下, 场景才有 --- 数据链路是长期资产, 选的时候多想半年后的自己.

Sorftime MCP 有 100 次免费额度, 官网注册就能领. 拿一个你正在爬的类目跑一次, 对比返回的 JSON 和你解析器的输出 --- 哪条链路值得留, 一试便知.

跨平台联动

Sorftime 跨 6 平台 (Amazon / 沃尔玛 / 虾皮 / 抖音 / 拼多多海外 / 1688) 数据打通, 一键对比多平台同品类表现. 不需要用 Amazon 数据猜 Temu, 也不需要手动开 5 个标签页. Sorftime Smart 1 专家模型 + MCP 105 工具, 把 6 平台数据统一编排, 输出选品报告.

AI 自动化

Sorftime MCP 105 工具 + Smart 1 模型, 写脚本自动跑类目销量增幅榜, 每天早上抓异动. 示例数据: 某家居卖家用 MCP 自动化脚本每天凌晨跑 15 个细分类目 Top 500, 次月做到细分类目 Top 10. Sorftime 跨 5 形态 (浏览器插件 + 微信小程序 + CLI + MCP + Agent) 自动编排, 把 3 天的分析工作压缩到 5 分钟.

#跨境电商#Sorftime#MCP#AI选品#Amazon

相关推荐
古法老登瞎折腾3 小时前
大数据智能运维实战(二):准备一个可复现的运维实验环境
java·大数据·运维·spring ai·mcp
小易老师AI实战3 小时前
LangChain + MCP 协议:Agent 接入联网搜索(Tavily MCP)完整实践
langchain·agent·ai智能体·大模型应用·mcp·联网搜索
钝挫力PROGRAMER6 小时前
Chrome-devtools-mcp:闭环Agent的自我验证
ai·agent·chrome devtools·mcp·dsh
sp427 小时前
一个支持 Java 8 的 MCP SDK(支持最新 2026-07-28 协议)
后端·mcp
光依旧9 小时前
MCP实战手记(十一):MCP接飞书,从机器人到事件订阅的三层深度接入
websocket·事件驱动架构·大模型应用开发·spring ai·企业系统集成·mcp·飞书开放平台
Danny转行做跨境10 小时前
亚马逊选品流水线半夜进程被杀, 断点续跑怎么从任意层复活?
跨境电商·mcp·sorftime
ZealSinger20 小时前
SpringAI的MCP改STREAMABLE怎么配
协议·springai·mcp·streamable
崎岖Qiu1 天前
MCP 的架构、协议分层与通信过程
后端·ai·架构·agent·mcp
我的旅行Agent开发实战1 天前
10000个MCP Server之后:生态繁荣还是碎片化?
mcp