← 返回市场观察台

数据导入与自动更新
下载 CSV 空白模板当前能做什么
网站读取经过校验的 JSON 快照。现已提供 CSV 空白模板和 CSV/JSON 校验转换工具,但没有网页上传后台、数据库连接或定时采集任务。导入本地文件后仍需更新网站版本,网页才会变化。
人工整理:Excel 打开 CSV 模板,第一行英文列名不改,填完另存为 CSV UTF-8。将文件交给本对话即可协助校验、预览及更新。不要在价格栏写货币符号;缺失值留空,不能填 0。每一行对应一个“商品规格 × 市场 × 报价条件”的当前观察,编号保持稳定。此版为完整快照替换,不是自动追加;增量文件需先与上一版合并。
字段
| 列名 | 填写方式 |
| id | 稳定唯一编号,如 NZ-MACPAC-001,只用英文、数字、下划线、短横线 |
| target_market | AU / NZ / US |
| category | carry 功能携带;dry 防水收纳;packing 旅行收纳;coffee 便携咖啡。其他品类需先扩充映射 |
| brand / product | 品牌 / 商品名,规格写清楚 |
| url | 原始商品的完整 https 链接 |
| price / reference_price | 当前价格 / 页面参考价;数字或空白 |
| currency | AUD / NZD / USD;无法确认则留空,不根据 $ 猜币种 |
| price_type | displayed 页面价;sale 促销;member 会员;from 起价;unknown 未知 |
| spec_summary | 规格摘要,可留空 |
| read_status | readable 已读取;partial 字段不全;fetch_failed 读取失败 |
| observed_at | 实际记录时间,带时区,例如 2026-10-06T15:11:51+13:00。缓存结果不能当作商家更新时间 |
| source_crawl_age_as_reported | 工具报告的页面缓存年龄;没有则空白 |
| notes | 税费、运费、会员、所选规格、失败原因等说明 |
采集工具可输出同名字段的 JSON 数组,或 {"records": [...]}。现有市场数据文件可作结构示例。JSON 的未知数值使用 null。
本地转换(开发交接):`python scripts/import_market.py 输入.csv database/imports/新批次.json`。工具检查必填、编号重复、市场、品类、币种、价格和时区,拒绝覆盖已有文件;不会访问源网页或发布网站。校验通过后复核异常,存档旧快照,再将新文件用于网站 `assets/market-data.json` 并发布。不同币种始终分开统计。
为什么有价格却没读到
第一轮使用网页文本提取,部分内容来自缓存。浏览器显示的价格可能由 JavaScript 后加载,也可能依赖国家、所选规格、登录或会员状态。还有请求失败、反机器人限制、提取规则未覆盖价格的位置等可能性。当前不能确定每个失败页面的具体原因,需浏览器逐页核查;“提取不到”不等于商品无价。
自动化接入方案(尚未配置)
建议第一阶段只选 20–50 个澳新商品,每天采一次验证稳定性;采集频率是建议,尚未开启任务。可用 Apify 的站点采集器或浏览器采集器读取指定市场、规格与报价条件,统一转换为上述字段。采集成功后由 webhook 通知服务端;服务端校验、保留历史、生成最新快照,再更新网站。更长期则让仪表盘读取自己的数据库接口。
采集器 → 定时运行 → JSON 数据集 → 服务端校验与历史存储 → 仪表盘。
先试跑再评估月成本是否在 1,000 元人民币内;费用取决于站点、浏览器运行量、代理、存储和汇率,目前没有购买服务或确认套餐。API 密钥保存在服务端,不放网页里。失败时保留上一次有效记录并显示旧记录时间和失败状态,不将旧价伪装成刚采到的新价。当前静态快照尚未实现这一自动回退机制。
Amazon、TikTok、Alibaba、Reddit 各自需要验证可用接口、权限与数据质量,不能认为一个采集器能稳定取得所有字段。评论数、页面商品数与价格都不能代替销量;新词是否有搜索机会,需要另外接搜索量与竞争数据。
官方资料:
- 动态页面:https://docs.apify.com/academy/node-js/dealing-with-dynamic-pages
- 数据导出:https://docs.apify.com/storage/dataset
- 定时任务:https://docs.apify.com/actors/running/schedules
- 完成回调:https://docs.apify.com/integrations/webhooks