Kansoku
English日本語简体中文

本页由英文原文翻译,尚未经母语者校对。以英文版为准。 阅读英文原文

工作原理

这是做什么用的工具、为什么不能靠自己去查、以及每天早上会以什么形式送到手上。关于内部机制的说明,放在这之后。

「从网上取数据」听起来简单。难的不是取到,而是取到的数字能被信任。

一句话

每天早上,告诉您这件商品现在由哪家公司在卖、卖多少钱,并附上证据。

不是"大约 12 万日元",而是:A 公司 ¥118,000、B 公司 ¥134,800、C 公司 ¥109,500,页面在这里,今早 6 点读取,使用的汇率是这个。

为什么"大约"不够用

经常有人来问价格。而绝大多数答案返回的是行情均价

均价是正确的数字。只是据此无法做任何决定。

"大约 12 万日元",这三件事一件也没回答。

为什么不能自己去查

能查。查一次的话。

有两个障碍。

① 100 件商品 × 5 个网站,每天早上查一遍,这不是人干的活

打开 500 个页面、抄下价格、和昨天比对。一天做不完。而且不是每天做就没有意义——昨天多少钱,没记下来就永远拿不回来了。

② 站在自己的国家,只能看到自己国家的价格

这一点最难说清楚,所以慢慢讲。

同一个网址,从哪里打开,返回的内容就不一样。 价格不同、货币不同、有货无货不同,排序、运费、促销也都不同。

这不是什么把戏,而是再普通不过的事——给日本来的访客显示日本的价格,商店本来就是这么做的。

也就是说:坐在东京的电脑前,您永远看不到竞争对手给德国客户显示的价格。

我们经由您指定国家的服务器打开页面,可以同时从多个国家读取同一个页面并并排呈现。

"问 ChatGPT 不就行了吗"

这个问题常被问到。我们实测过,结果如下。

询问对话式 AI"两个市场水平大致相当"
同日同商品实测美国市场比日本高 17%

有意思的是后面。AI 给出的两个数字,都是真实且正确的值。 一个是回收价,另一个是市场指数。

它把性质完全不同的两个量并列相减,而回答中任何地方都没有说明这个区别。 仅这一点差异,就会让差价的正负号反过来。

这不是模型好坏的问题。下面五点,换个问法都填不上。

  1. 返回的是"行情",不是"卖家"——是正确的答案,但不是能据以行动的答案
  2. 只能从它所在的位置看——不存在"请从圣保罗的角度看"这样的提示词
  3. 不说数字从哪来——所以您无从发现错误
  4. 它没有"昨天"——没人保存过,事后也买不到
  5. 每次问,答案都不同——上周的材料和这周的材料无法比较

这是在说明 AI 是用来做什么的,而不是在批评它。 读取特定页面、从特定国家、在特定时刻,并留下记录——那是另一件工作。

每天早上收到的东西

每一行都附带以下全部内容。

销售方页面上显示的卖家原文
价格(不含税)¥118,000
与上次之差−¥4,200
与自家比+8.6%
读取国家经由了哪个国家的服务器
页面网址实际读取的页面
取得时刻2026-08-22T02:20:04.756Z
汇率采用的汇率,以及该汇率本身的公布日

这些字段不可拆分。 不是选配、不是高价套餐,一定全部附带。

理由只有一个——没有出处的价格,在会议上守不住。 汇报"竞争对手是 10 万",被追问"哪来的?""什么时候的?""含税还是不含税?",答不上来,那份材料就再也不会被使用。

送达方式有四种:画面(今早的表格)、CSV每日早间邮件Webhook

最不起眼、却最要紧的地方

假设每天都去读取竞争对手的网站。某天早上对方改版了,读取失败。 返回的数据是"0 条"。

如果做得粗糙,就会这样汇报:"竞争对手一夜之间全部售罄。"

在数据上,"取得失败"和"全部售罄"的形状完全一样。 而且这是会让人真的采取行动的数字。

我们的做法:

并且读取失败的信息源会被指名 ——画面上、CSV 里、邮件中都会出现。默默丢掉的话,比上周更短的清单会被读成"市场萎缩了"。


以下是机制的说明

看到这里已经足够的话,请前往应用场景价格

1. 从哪里看

页面会因为「谁在看」而改变样貌。

同一个商品页,从日本看是日元、有货;从美国看是美元、缺货。搜索排序不同,同意横幅不同,AI 提到的公司名也不同。

所以请求必须从那个国家的地址发出。 每个请求都可以指定国家,我们就从那里读取。

2. 怎么读 —— 从便宜的层开始

做什么费用
css读取你提供的选择器
structured_data读取站点已经公布的 JSON-LD / OpenGraph
llm把页面描述给模型token

后面的层只填补前面留空的部分,而只要你不要求 llm,模型就不会被调用。 大多数商品页靠前两层就够了。

这既是成本问题,也是可复现性问题:选择器和结构化数据,对同一个页面返回同样的结果。

列表按行返回

我们不按列返回数组。一张卡片缺了价格,那一个数组就短一位,之后所有配对全部错位,而且不会报错 —— 你会得到一张由真实商品名和真实价格组成、却分属不同商品的表。下游无法检测。

按行返回时,缺失的字段是该条记录内的 null,前后各行依然对齐。

3. 一起返回什么

只有数据,在会议上守不住。每一行都带有:

seller页面上公布的卖家原样
url读取的页面
retrieved_at读取时刻
fx_rate / fx_published_on所用汇率,以及该汇率本身的公布日期
price_ex_tax_jpy统一为不含税的价格
level / attempts产出该值的层,以及尝试过的所有层

税制换算在采集时一次性完成,比较只读那一列。 把含税的日本价格与不含税的香港价格相减,曾产出「香港便宜 12.9%」的报告。真实差距是 4.3%,而且有些商品在对方市场反而更贵 —— 错的不只是幅度,是正负号。

4. 在发布之前停下

上述错误不会抛出异常。它们会生成看起来合理的数字。 所以我们放弃了「人会发现」这个前提,把每一个都变成可执行的检查。

报告生成前要通过 31 项检查,任何一项失败就不生成。 当检查在正确的数据上失败时,我们修检查,而不是放宽它。

我们拒绝做的

不伪装指纹。不绕过验证码。不绕过登录。不超过对方声明的限制。不从所读取的页面采集个人信息。

除了原则,还有生意上的理由:一旦被某个来源拒绝,就再也读不回来了,而损失落在每一位需要它的客户身上。

阅读采集方针

最后更新 2026-08-21

最后更新