跳到主要内容
Amazon 封的是代理?它封的是"谁在看那个购物车页面"

Amazon 封的是代理?它封的是"谁在看那个购物车页面"

阿舟
阿舟

· 阅读约 7 分钟

上周我把一个自己写的小 agent 从云主机挪回了笔记本。同一个脚本,同一份逻辑,只换了运行位置和 browser profile。

# 云主机版:干净 profile、headless、AWS us-east-1
browser = launch(headless=True, user_data_dir="/tmp/profile-fresh")

# 笔记本版:复用我自己的 Chrome profile,登录态、cookie 全在里面
browser = launch(headless=False, user_data_dir="~/Library/.../Default")

云上那版被目标站的 WAF 挑战了三次,没过。挪回本地,一次过,一路顺到付款页。

当时我的感受不是"我技术变强了",是"这玩意儿根本没法防"。所以看到 Amazon 限制 Meta 的 Muse 在 amazon.com 上购物,我第一反应不是"代理时代来了",是——这能封住?

能封住一部分。而能封住的那部分,恰好是最不重要的。

服务端分不清 Muse 和我

先把话说明白:Amazon 说的"外部代理",在服务端看是什么?

Muse 如果跑在 Meta 的数据中心里,带着自己那套指纹去抓 amazon.com,好拦。WAF 里一条规则的事,自动化流量特征明确,误杀率也低。

可如果它跑在用户自己机器上,复用用户自己的会话、登录态、收货地址、支付方式——那在 Amazon 眼里,这就是一个凌晨两点下单、比平时快十倍、其他方面完全正常的用户。你怎么拦?拦了就是拦用户自己。

识别代理,识别的是"环境",不是"意图"。同一个 Chrome,带不带自动化 flag 是两种东西;跑在 AWS 和跑在你家宽带,也是两种东西。剩下的可分辨空间没多少。

本该放过的那个:
  ASN        = 7922(住宅宽带)
  TLS 指纹   = 真实 Chrome
  会话       = 用户自己的 cookie jar
  行为       = 快,但地址簿和支付方式都对得上

本该拦下的那个:
  ASN        = 16509(AWS)
  TLS 指纹   = Python/requests
  会话       = 无
  行为       = 扫全站

有人会说住宅代理池能解决……对,这就是住宅代理池一直存在的原因。只不过以前它是灰产生意,往后它大概会变成每个正经 agent 的标配。有点讽刺:上游越想在网络层做区分,下游就越把"看起来像人"做成基础能力。

画外音:最后被卡住的,往往是写得起代码、但没预算搞代理池的个人开发者。封了半天,封掉的是最老实的那个。

真要在规则上收紧,Amazon 自己先扛不住误杀成本。下单页拦错一个人,就是一笔订单加一张客服工单。想拦住"跑在用户机器上的本地代理",规则得多紧?紧到顺手拦下一堆手机端弱网用户、企业 VPN、开着一堆插件的 Chrome。这代价没人愿意付。所以现实里能做的:拦数据中心 IP 段、拦明显的 headless 指纹、剩下靠人工抽检。筛子,不是墙。

Amazon 真正紧张的不是买错,是买得太对

我最初的判断是退货率。看到卖家要自己扛三到五成退货成本那个数字,我心想:哦,怕 Muse 乱下单乱退货。

后来证明我这个判断是错的。

代理下单恰恰不冲动。它不会因为"最后 8 小时"的倒计时多买一件,不会在加购之后被推荐位勾走,也不会买错尺码——尺码表就在它手边。让它买东西,退货率大概率比人低。

那它怕什么?怕代理不看广告。

一个搜索页,前四条可能是推广位,往下划一片 Sponsored。这些位置值钱,是因为有人在看。刷、比价、犹豫、回头再看第二眼——这些行为本身就是可以卖的东西。代理在干什么?读完四十个几乎一样的 listing,提参数、比价,选最便宜的,退出。全程零曝光。

顺带它还干掉一堆更隐蔽的收入:限时促销的紧迫感、推荐位的注意力、"买了这个的人还买了那个"那多点两下,还有退订流程里那三屏挽留页面。最后这条尤其要命——很多订阅生意就是靠"取消很麻烦"活着的。代理不怕麻烦,它点二十次也不烦。

所以 Amazon 有动机封。不是阴谋,是账算得清楚。有人说 Amazon 的壁垒本来就不在购物界面,而在物流、退货政策、信任这些地方——这话我同意。但正因为壁垒不在界面上,界面才更要守住,因为那是广告位待的地方。

开放 API,再关门,这套剧本演过很多遍

有人把这件事类比成社交平台开放 API 又反悔。类比成立,但结论得反着听。

开放 API 从来不是承诺,是获客。第三方客户端做大、动了广告位,门就关。这不是平台的道德问题,是商业模式决定的。指望平台"信守开放承诺",跟指望房东不涨房租差不多。

所以"Amazon 有没有权利拦代理"这问题本身没意思。它当然有,网站是它的。有意思的是:它拦得住多久,拦不住之后它会换成什么姿势。

说句题外的。Rufus,搜个东西它弹出来问我要不要帮我比较这几款。不要。我进搜索页就是想扫一眼价格和评价,你把我往 Ask Rufus 那个页面推,我还得点回来。有人开玩笑说改名叫 Doofus 体验能好点——我觉得这不完全是玩笑。它的问题不在名字,在于它出现的位置永远是人已经知道自己要干嘛的时候。

扯远了,回正题。Rufus 暴露的其实是 Amazon 的真实态度:它不反对代理,它反对别人控制的代理。用户想要一个能替自己划拉列表的东西,这个需求是真的,拦不住。那怎么办?自己做一个,摆在最显眼的地方,顺便把用户留在自己的页面上。

筛子早晚会变成收费站

现在这套 IP 段 + 指纹 + WAF 的组合,是过渡期的筛子。能拖一阵,拖不久。

真正的终局我猜是白名单:给网站加一套机器可读的 agent 接口,代理别去猜 DOM、别去点按钮,直接走结构化调用。听着挺美好——它顺带解决了另一个问题,谁被允许调用。

一旦接口有身份,平台就能签发凭据。到那时候,区分"大规模抓取"和"代表个人的良性代理"就不靠 IP 和指纹了,靠你有没有那张许可。API 一直就是这么用的:既提供便利,也提供区分手段。区别只是它从一个中立的协议,变成一份要谈的商务合同。对平台来说,一次性付通道费显然比无限次跟指纹军备竞赛划算——这大概才是 Meta 和 Amazon 之间真正会落地的那件事。

我不觉得这有什么可悲壮的。需求侧太硬:没人愿意在四十个几乎相同的 listing 里手动挑,这是确定的事。所以封禁注定是临时的。终局的形态更可能是 Amazon 从"封"改成"收",Meta 或者别的谁掏钱买通道,用户这边感觉不到墙,只是价格悄悄变了一点点。

那些说"用 Muse 下单被拦了很失望"的人,我理解那种失望。但那不是 Amazon 变坏了,是我们太容易把"能访问"当成默认状态。它从来都是被允许的,只是以前没人有精力管。

我那个小 agent 现在还跑在笔记本上,复用我自己的 profile。我知道这不是长久之计——哪天某个站开始查"你的鼠标轨迹为什么这么直",我就得再缴一次智商税。

技术侧争的是"你分不分得清我",商务侧争的是"我能不能收你的钱"。前者改几行启动参数就能来回拉扯,后者一旦定下来,就很难再改回去。

阿舟
阿舟

写代码写到一半开始怀疑人生,靠 AI 工具续命,顺手把踩过的坑都记下来。

查看主页 →