先把问题解决
商品应保留2+1条观察,不能按同名或相同SKU跨店合并;三条评价只有两条有评分;社交点赞0与未提供不同。逐份核对导出行,再保留包含sourceUrl、source、mode、collectedAt的JSON外层。解析时间不证明历史观察时间。
先给四份输入建立来源账本
练习包中的域名、商品、评价和帖子均为虚构。source-manifest.json给出每份文件应使用的工具、来源URL和预期行数;不要用在线采集访问这些示例域名。使用粘贴源码或导入文件处理。
- store-a-products.json和store-b-products.json分别交给平台商品采集,来源分别填https://shop-a.example/catalog和https://shop-b.example/catalog。
- 选择粘贴源码或导入,读取完整文件后点击解析内容。源码会发送到KitNelo解析服务,不能描述为离线浏览器处理。
- 每次解析后分别保存JSON与CSV或Excel,并记录输入文件和输出文件的对应,不把四份不同任务的行数混为一个总量。
按步骤选择具体操作
先定每份输入的参考答案,再看工具预览
正确提取不仅是看到了一个表格。商品A应为2行、商品B为1行;评价3行中评分已提供2行、缺失1行;社交2行中一条明确0点赞、另一条未提供。全空字段可能在预览中隐藏,导出仍应核对字段。
| 输入 | 记录数 | 关键字段核对 |
|---|---|---|
| store-a / store-b | 2 / 1条商品观察 | USD 12.00、USD 20.00 / EUR 11.00 |
| reviews | 3条评价 | 4/5、6/10、未提供;不是3个已知评分 |
| social | 2条帖子 | likes为字符串0与空白,不是两个0 |
完整商品输入:同SKU也可能是不同观察
店A的两种变体与店B商品分别处理。TEA-100在两商店重复,不构成全球唯一标识;不能只按SKU或Demo tea标题合并。价格按原币种保留,不把12 USD和11 EUR直接排序为同一金额。
{
"@context": "https://schema.org",
"@type": "ProductGroup",
"name": "Demo tea",
"hasVariant": [
{
"@type": "Product",
"name": "Demo tea 100g",
"sku": "TEA-100",
"offers": {
"@type": "Offer",
"price": "12.00",
"priceCurrency": "USD",
"url": "/products/tea-100"
}
},
{
"@type": "Product",
"name": "Demo tea 200g",
"sku": "TEA-200",
"offers": {
"@type": "Offer",
"price": "20.00",
"priceCurrency": "USD",
"url": "/products/tea-200"
}
}
]
}{
"@context": "https://schema.org",
"@type": "Product",
"name": "Demo tea 100g",
"sku": "TEA-100",
"offers": {
"@type": "Offer",
"price": "11.00",
"priceCurrency": "EUR",
"url": "/products/tea-100"
}
}| 来源 / SKU | 名称 | price / currency | 导出的商品URL |
|---|---|---|---|
| shop-a / TEA-100 | Demo tea 100g | 12.00 / USD | https://shop-a.example/products/tea-100 |
| shop-a / TEA-200 | Demo tea 200g | 20.00 / USD | https://shop-a.example/products/tea-200 |
| shop-b / TEA-100 | Demo tea 100g | 11.00 / EUR | https://shop-b.example/products/tea-100 |
Schema.org的ProductGroup说明描述组与变体关系。此处只核对输入中提供的快照,不取得结账价、运费或实时库存。
三条评价只有两个评分,先保留量表再计算
将完整reviews.json用于平台评价整理,应得到Review A、B、C三条。rating依次4、6、空白;worstRating为1、0、空白;bestRating为5、10、空白。C没有提供评分,不能填0,也不能纳入“已知评分条数”的分母。
按“评分÷最高分”,A为80%、B为60%;按量表区间位置,A为(4−1)/(5−1)=75%、B为(6−0)/(10−0)=60%。两种指标不能混用,原始4与6也不能直接平均成统一星级。当前输入的已知评分覆盖为2/3;这不是平台全部评价的覆盖率。
[
{
"@type": "Review",
"name": "Review A",
"reviewBody": "Fictional review A.",
"reviewRating": {
"ratingValue": 4,
"worstRating": 1,
"bestRating": 5
}
},
{
"@type": "Review",
"name": "Review B",
"reviewBody": "Fictional review B.",
"reviewRating": {
"ratingValue": 6,
"worstRating": 0,
"bestRating": 10
}
},
{
"@type": "Review",
"name": "Review C",
"reviewBody": "Fictional review C has no rating."
}
]Schema.org的Rating字段区分ratingValue、bestRating与worstRating。这里的两种算法是明确写出的编辑比较方法,工具不会替你生成可信的跨平台平均分。
交付时保留JSON外层,别把解析日期当观察日期
再用social.json核对点赞:第一条明确为0,第二条没有likes,结果应为0与空白。预览可能省略全空的comments等列,但CSV/Excel与JSON仍会保留相应字段;不要根据预览列数判断来源完整。
本系列JSON下载有sourceUrl、source、mode、collectedAt和result;实际行在result.items。CSV与Excel主要保存结果行,商品url常是具体商品页,不一定是本次导入的目录URL。保留JSON或另外建立文件来源清单,才能回到完整输入。
collectedAt表示本次运行解析服务的时间。账本中的2026-10-01/02是虚构案例的观察标签,不会因为今天解析就变成真实历史证据。重新导入旧文件也不等于重新获得平台实时数据;source值为paste也不能证明曾在线抓取。
[
{
"@type": "SocialMediaPosting",
"articleBody": "Fictional post A",
"likes": 0
},
{
"@type": "SocialMediaPosting",
"articleBody": "Fictional post B"
}
]来源采集与字段边界指南解释如何保留材料范围;对未提供字段继续按缺失与零的区分复核,不把不可获取写成零。
逐文件核对后再交付,来源缺失就保留未决
一个可复查的包应包含四份原始JSON、来源账本、四份解析JSON及需要的行表。修复错误的来源URL或输入后重新解析,另存版本;不要只改输出表的显示名称掩盖错误。
常见问题
提取价格会一直有效吗?
不会,应保留观察时间,需要当前决策时重新核对原来源。
视频记录包含视频文件吗?
元信息记录不代表媒体已下载或已获再利用许可。
不可获取计数可以设为零吗?
不应,零是观察到的数量,不可获取表示未取得有依据的值。
参考资料与延伸阅读
按步骤开始处理
进入对应工具,预览处理结果,检查导出的文件。


