
Amazon Listing Optimization
- 5 installs
- 41 repo stars
- Updated April 19, 2026
- liangdabiao/amazon-skills-liang
Helps with ai & agent building tasks.
About
amazon-listing-optimization is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- amazon-listing-optimization
- AI & Agent Building
- AI-coding skill
Amazon Listing Optimization by the numbers
- 5 all-time installs (skills.sh)
- Ranked #13,065 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/liangdabiao/amazon-skills-liang --skill amazon-listing-optimizationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 5 |
|---|---|
| repo stars | ★ 41 |
| Last updated | April 19, 2026 |
| Repository | liangdabiao/amazon-skills-liang ↗ |
What it does
Helps with ai & agent building tasks.
Files
亚马逊Listing优化 📝
从零开始构建关键词优化的listing,或审计和优化现有listing。无需API密钥 — 开箱即用。
两种模式
| 模式 | 适用场景 | 输入 | 输出 |
|---|---|---|---|
| A — 创建 | 构建新listing | 关键词和/或竞品ASIN + 产品信息 + 语气 | 完整listing文案 + 关键词覆盖评分 |
| B — 优化 | 改进现有listing | 您的ASIN或URL(+ 可选关键词或竞品ASIN) | 优化的listing文案 + 审计报告 + 差距分析 |
模式A — 三种开始方式
| 输入来源 | 工作方式 |
|---|---|
| 关键词 | 用户提供关键词列表 → 技能优先排序并生成listing |
| 竞品ASIN | 用户提供1-3个竞品ASIN → 技能获取他们的listing,提取关键词,然后生成覆盖所有关键词并更多的listing |
| 两者都有 | 用户提供关键词 + 竞品ASIN → 技能合并两个来源以获得最大覆盖 |
功能
- 关键词驱动的listing生成:导入关键词(来自amazon-keyword-research、手动列表或从竞品ASIN提取),按优先级排序,生成最大化关键词覆盖的文案
- 竞品关键词提取:获取竞品listing并自动提取他们的标题/五点关键词作为您的基准
- 8维度审计和评分:标题、五点、描述、图片、A+内容、定价、评论、SEO覆盖
- 关键词覆盖跟踪:可视化地图显示哪些关键词出现在标题/五点/描述中/缺失
- 语气选择:专业、友好、紧急、奢华 — 影响AI文案风格
- 竞争基准测试:将您的listing与竞品比较
- 多市场:美国、英国、德国、法国、意大利、西班牙、日本、加拿大、澳大利亚、印度、墨西哥、巴西
使用示例
模式A — 从关键词创建
为便携式榨汁杯创建listing。关键词:portable blender, smoothie maker, USB rechargeable, travel blender, personal blender。材质:BPA-free Tritan。颜色:白色。容量:380ml。语气:友好。我有这些研究关键词:[粘贴关键词列表]。产品:硅胶厨房用具套装,12件,耐热至480°F。生成完整listing。模式A — 从竞品ASIN创建
我想在亚马逊美国卖狗T恤。这是我的3个竞争对手:B0D72TSM62、B0ABC12345、B0XYZ67890。我的产品是100%棉,6个颜色,XS-XL,趣味印花。分析他们的listing并创建一个更好的。语气:友好。为我的瑜伽垫创建listing。看这个竞争对手:B09V3KXJPB。提取他们的关键词,找出他们遗漏的内容,并构建一个覆盖更多关键词的listing。产品:6mm TPE,防滑,带携带带。语气:专业。模式A — 从关键词 + 竞品ASIN创建
使用amazon-keyword-research为"portable blender"查找关键词,同时分析这些竞争对手:B0CPY1GFVZ、B0CXLF3Y19。合并所有关键词并创建listing。产品:380ml,USB-C,BPA-free Tritan。语气:专业。模式B — 优化现有
审计亚马逊美国ASIN B0D72TSM62的listing使用这些关键词优化B0D72TSM62:dog shirt, pet clothes, puppy clothing — 展示缺失的内容并重写通过分析这些竞争对手来优化我的listing B0D72TSM62:B0ABC12345、B0XYZ67890。找出他们有而我没有的关键词,并重写我的listing以击败他们。---
模式A工作流程 — 从关键词创建Listing
A1步:收集关键词
关键词可以来自四个来源(使用一个或合并多个):
1. 来自[amazon-keyword-research](https://github.com/nexscope-ai/Amazon-Skills/tree/main/amazon-keyword-research)技能(推荐):先运行关键词研究,然后将结果直接输入。安装:npx skills add nexscope-ai/Amazon-Skills --skill amazon-keyword-research -g 2. 来自竞品ASIN:用户提供1-3个竞品ASIN → 在每个上运行<skill>/scripts/fetch-listing.sh → 从他们的标题、五点和描述中提取关键词 → 作为您的关键词基准。这是最快的方式 — 您继承竞争对手已经有效的方法,然后添加更多。 3. 来自用户关键词列表:用户粘贴自己的关键词列表(例如来自Helium 10 Cerebro、Jungle Scout或手动研究) 4. 自动发现:使用web_search查找产品类目的热门关键词
当提供竞品ASIN时,始终先获取并分析它们。从他们的标题和五点中提取每个有意义的关键词,然后与用户提供的关键词合并。目标:覆盖竞争对手覆盖的所有内容,加上他们遗漏的关键词。
A2步:优先排序关键词
将关键词组织成层级:
🔴 主要(必须出现在标题中):
- [关键词] — [搜索量(如果有)]
- [关键词] — [搜索量(如果有)]
🟡 次要(必须出现在五点中):
- [关键词]
- [关键词]
🟢 第三级(应出现在描述或后台中):
- [关键词]
- [关键词]
⚪ 长尾(自然使用):
- [关键词短语]
- [关键词短语]优先级规则:
- 最高搜索量 → 标题(靠前)
- 中等搜索量 + 高相关性 → 五点(每个五点一个主要关键词)
- 较低搜索量/长尾 → 描述
- 剩余 → 后台搜索词(建议卖家在Seller Central中添加)
A3步:收集产品特性
从用户输入中询问或提取:
- 产品名称/类型
- 品牌名称
- 关键属性:材质、颜色、尺寸、重量、容量、数量
- 关键特点:是什么让它与众不同(3-5个特点)
- 目标受众:谁购买这个?
- 使用场景:前3个场景
- 包装内容:包含的所有东西
A4步:选择语气
| 语气 | 风格 | 适用于 |
|---|---|---|
| 专业 | 权威、规格导向、建立信任 | 电子产品、工具、B2B |
| 友好 | 对话式、利益导向、可共鸣 | 厨房、生活方式、礼品 |
| 紧急 | 稀缺驱动、行动词、解决问题 | 健康、安全、季节性 |
| 奢华 | 高级、感官语言、独家性 | 美容、时尚、高端产品 |
默认:如果未指定,则为专业。
A5步:生成Listing文案
按照以下规则生成每个组件:
标题(最多200个字符):
- 格式:
[品牌] + [主要关键词] + [关键属性1] + [关键属性2] + [次要关键词] + [差异化因素] - 主要关键词尽可能靠近前面(品牌之后)
- 除品牌名称外不使用全大写
- 不使用促销声明("best"、"#1"、"top rated")
- 如果与搜索相关,包括尺寸/颜色/数量
五点(5个五点,每个最多500个字符):
- 每个五点:
[大写利益标题] — [自然嵌入关键词的利益说明] - 五点1:主要特点 + 主要关键词
- 五点2:关键使用场景 + 次要关键词
- 五点3:质量/材质 + 信任信号
- 五点4:包含内容/兼容性
- 五点5:保证/差异化/社会证明提示
- 每个五点应包含至少1个目标关键词
描述(最多2000个字符):
- 开场:产品解决的问题/痛点
- 中间:特点 → 利益(扩展五点内容,不要逐字重复)
- 结尾:行动号召 + 包装内容
- 嵌入未在标题/五点中使用的剩余关键词
- 使用换行以提高可读性
A6步:关键词覆盖评分
生成后,制作覆盖地图:
## 关键词覆盖报告
| 关键词 | 搜索量 | 在标题中? | 在五点中? | 在描述中? | 状态 |
|---------|--------|-----------|-------------|-----------------|--------|
| 便携式榨汁杯 | 45,000 | ✅ | ✅ | ✅ | 🟢 已覆盖 |
| 奶昔制作器 | 22,000 | ❌ | ✅ | ✅ | 🟡 添加到标题 |
| USB可充电 | 18,000 | ✅ | ✅ | ❌ | 🟢 已覆盖 |
| 旅行榨汁杯 | 12,000 | ❌ | ❌ | ✅ | 🟡 添加到五点 |
| 迷你榨汁杯 | 8,000 | ❌ | ❌ | ❌ | 🔴 缺失 |
覆盖:18/22关键词(82%)
标题关键词:6/8个槽位已用
五点关键词:12/15个目标关键词已覆盖
未覆盖 → 建议添加到后台搜索词评分:
- 🟢 90%+ 覆盖 = 优秀
- 🟡 70-89% = 良好,有小差距
- 🔴 <70% = 需要改进,重要关键词缺失
---
模式B工作流程 — 优化现有Listing
B1步:获取Listing数据
运行捆绑脚本:
<skill>/scripts/fetch-listing.sh "<ASIN>" [市场]参数:
ASIN(必填):例如 B09V3KXJPB市场(可选):us(默认)、uk、de、fr、it、es、jp、ca、au、in、mx、br
提取内容: 标题、品牌、价格、五点、描述、图片数量、A+内容存在性、评分、评论数量、BSR、类目、首次可用日期。
如果脚本返回不完整的数据,回退到产品URL的web_fetch。
B2步:发现目标关键词
如果用户提供关键词,使用那些。否则,自动发现:
1. 从当前标题和五点中提取明显关键词 2. 运行web_search查找site:amazon.com "[产品类型]"以找到竞争对手 3. 从前3个竞争对手的标题和五点中提取关键词 4. (可选)与amazon-keyword-research技能链接以进行更深入分析 5. 编译包含估计优先级的组合关键词列表
B3步:关键词差距分析
将当前listing与目标关键词进行比较:
## 关键词差距分析:[ASIN]
### ✅ Listing中已找到的关键词
| 关键词 | 在标题中 | 在五点中 | 在描述中 |
|---------|----------|------------|----------------|
| [关键词] | ✅ | ✅ | ❌ |
### ❌ 缺失的关键词(竞争对手有,您没有)
| 关键词 | 竞争对手1 | 竞争对手2 | 竞争对手3 | 优先级 |
|---------|-------------|-------------|-------------|----------|
| [关键词] | ✅ 标题 | ✅ 五点 | ❌ | 🔴 高 |
### 覆盖:X/Y关键词(Z%)B4步:8维度审计
按所示量表对每个维度评分,并考虑关键词整合因素:
| 维度 | 最高分 | 关键标准 |
|---|---|---|
| 标题 | /15 | 主要关键词靠近前面?品牌?属性?200字符以内?移动端不截断? |
| 五点 | /15 | 5个都用?利益优先?关键词自然嵌入?每个500字符以内? |
| 图片 | /15 | 7+张图片?主图白底?信息图?生活方式图?尺寸参考?视频? |
| A+内容 | /10 | 存在?品牌故事?对比表?生活方式图片? |
| 描述 | /10 | 标题/五点中未使用的关键词?可读?问题→解决方案流程? |
| 定价 | /10 | 有竞争力?优惠券/优惠存在? |
| 评论 | /15 | 4.0+星?100+评论?近期评论正面? |
| SEO覆盖 | /10 | 主要关键词在标题+五点+描述中?长尾存在?没有浪费重复?关键词覆盖百分比 |
B5步:生成优化后的文案
重写listing,整合缺失的关键词:
- 显示每个组件的优化前 vs 优化后
- 突出显示添加了哪些关键词以及在哪里
- 除非请求不同的语气,否则保持品牌现有语气
---
输出格式
主要交付成果始终是可直接使用的listing,卖家可以直接复制粘贴到Seller Central。诊断数据(评分、关键词分析)作为支持证据放在后面。
模式A输出 — 新Listing
# ✅ 您的Listing — 可直接使用
## 标题
[标题文本 — 直接复制到Seller Central]
## 五点
1. [利益标题] — [带关键词的文本]
2. [利益标题] — [带关键词的文本]
3. [利益标题] — [带关键词的文本]
4. [利益标题] — [带关键词的文本]
5. [利益标题] — [带关键词的文本]
## 描述
[描述文本 — 直接复制到Seller Central]
## 后台搜索词
[逗号分隔的关键词,粘贴到Seller Central → 关键词 → 搜索词]
---
# 📊 我们如何构建此Listing(诊断)
**市场:** 亚马逊 [XX] | **语气:** [语气] | **导入关键词数量:** [数量]
**标题字符数:** [X]/200 | **描述字符数:** [X]/2000
## 关键词覆盖:[X]%
| 关键词 | 搜索量 | 在标题中 | 在五点中 | 在描述中 | 状态 |
|---------|--------|----------|------------|----------------|--------|
| [关键词] | [搜索量] | ✅/❌ | ✅/❌ | ✅/❌ | 🟢🟡🔴 |
## 关键词优先级细分
🔴 主要(标题):[列表]
🟡 次要(五点):[列表]
🟢 第三级(描述):[列表]
⚪ 后台:[列表]模式B输出 — 审计 + 优化后的Listing
# ✅ 优化后的Listing — 可直接使用
## 标题
[优化后的标题 — 直接复制到Seller Central]
## 五点
1. [利益标题] — [优化后的文本]
2. [利益标题] — [优化后的文本]
3. [利益标题] — [优化后的文本]
4. [利益标题] — [优化后的文本]
5. [利益标题] — [优化后的文本]
## 描述
[优化后的描述 — 直接复制到Seller Central]
## 后台搜索词
[逗号分隔的关键词,粘贴到Seller Central → 关键词 → 搜索词]
---
# 📊 审计报告:[ASIN]
**产品:** [标题] | **品牌:** [品牌]
**价格:** [价格] | **评分:** [星级]([数量]条评论)
## 评分:[X/100] → [Y/100](优化后)
| 维度 | 优化前 | 优化后 | 主要变化 |
|-----------|--------|-------|-----------|
| 标题 | /15 | /15 | [变化内容] |
| 五点 | /15 | /15 | [变化内容] |
| 图片 | /15 | — | [仅建议] |
| A+内容 | /10 | — | [仅建议] |
| 描述 | /10 | /10 | [变化内容] |
| 定价 | /10 | — | [观察] |
| 评论 | /15 | — | [观察] |
| SEO覆盖 | /10 | /10 | [变化内容] |
## 关键词覆盖:[X]% → [Y]%
| 关键词 | 优化前 | 优化后 | 添加位置 |
|---------|--------|-------|-------------|
| [关键词] | ❌ | ✅ | 标题 + 五点2 |
| [关键词] | ✅ 仅标题 | ✅ 标题 + 五点 | 五点4 |
## 优化内容(优化前 → 优化后)
**标题:**
> ❌ [原始]
> ✅ [优化后]
**五点:**
> ❌ 1. [原始]
> ✅ 1. [优化后 — 添加了:+[关键词1],+[关键词2]]
## 🔴 已修复的问题
1. [问题 → 修复方法]
## 🟡 建议(需要卖家操作)
1. [图片改进、A+内容、定价 — 技能无法重写的内容]
## 🟢 已生效的内容
1. [保留的正面方面]竞争比较(如请求)
| 维度 | 您的Listing | 竞争对手1 | 竞争对手2 | 竞争对手3 |
|-----------|-------------|-------------|-------------|-------------|
| 标题评分 | /15 | /15 | /15 | /15 |
| 五点评分 | /15 | /15 | /15 | /15 |
| 图片 | [数量] | [数量] | [数量] | [数量] |
| A+内容 | 有/无 | 有/无 | 有/无 | 有/无 |
| 关键词覆盖 | X% | X% | X% | X% |
| 价格 | — | — | — | — |
| 评分 | — | — | — | — |
| **总分** | **/100** | **/100** | **/100** | **/100** |关键原则
1. 卖家的工作流程是:复制listing → 粘贴到Seller Central → 完成。 诊断部分解释为什么选择这些特定词,但listing本身必须作为完整的、可直接使用的交付成果独立存在。永远不要只输出报告而不输出实际的listing文案。
2. 输出语言必须与目标市场匹配。 亚马逊美国/英国/澳大利亚/加拿大/印度 → 英语。亚马逊德国 → 德语。亚马逊法国 → 法语。亚马逊日本 → 日语。亚马逊西班牙/墨西哥 → 西班牙语。亚马逊意大利 → 意大利语。亚马逊巴西 → 葡萄牙语。整个输出(listing文案和诊断部分)必须使用市场语言,无论用户在对话中使用什么语言。
与amazon-keyword-research的集成
此技能与amazon-keyword-research链接时效果最佳:
第一步:"研究亚马逊美国便携式榨汁杯的关键词"
→ amazon-keyword-research返回带搜索量的关键词列表
第二步:"现在使用这些关键词创建listing。产品:380ml BPA-free榨汁杯,USB-C充电。语气:友好。"
→ amazon-listing-optimization 模式A使用关键词生成优化后的文案局限性
- 此技能生成listing文案和优化建议,但无法直接修改Seller Central中的listing
- 评分和建议基于标准最佳实践 — 可能需要根据您的特定类目和品牌指南进行调整
- 关键词覆盖建议假设标准亚马逊SEO规则 — 某些类目可能有不同的要求
- 无法访问您的实际销售数据 — 建议基于公开信息和通用最佳实践
{
"name": "amazon-listing-optimization",
"version": "1.0.0",
"ownerId": "nexscope-ai"
}
Amazon Listing 优化工具 — 原理详解
概述
本工具是一个基于 AI 的 Amazon 商品页面(Listing)生成与优化引擎,通过关键词驱动的文案生成和 8 维度审计评分体系,帮助卖家创建符合 Amazon A9 搜索算法排名规则的高转化 Listing。
核心原理
1. A9 算法与关键词权重分布
Amazon 的搜索排名算法(A9)根据关键词在 Listing 各部分的出现位置和频率来判定相关性。不同位置的权重不同:
标题 (Title) 权重最高 — 主关键词必须出现在前50字符
卖点 (Bullet Points) 权重次之 — 每个Bullet应包含1个目标关键词
描述 (Description) 权重第三 — 用于覆盖未放入标题/Bullet的关键词
后台搜索词 (Backend) 权重最低 — 补充Listing中未自然融入的关键词本工具的核心逻辑就是将关键词按优先级分配到对应位置,实现最大覆盖。
2. 双模式架构
模式 A — 创建新 Listing:
关键词输入(4种来源)
├── amazon-keyword-research 输出
├── 竞品 ASIN 标题/卖点提取
├── 卖家自有关键词列表
└── 自动搜索发现
↓
关键词分级(4级优先级)
├── 🔴 Primary → 标题(搜索量最高的词)
├── 🟡 Secondary → 卖点(中等搜索量 + 高相关性)
├── 🟢 Tertiary → 描述(较低搜索量/长尾词)
└── ⚪ Long-tail → 后台搜索词
↓
AI 文案生成( Tone 风格控制)
↓
关键词覆盖率报告模式 B — 优化现有 Listing:
抓取现有 Listing 数据
↓
提取当前关键词
↓
竞争对关键词对比 → 差距分析
↓
8维度审计评分(满分100分)
↓
生成优化版本 + Before/After对比3. 关键词分级策略
关键词按搜索量和商业意图分为 4 级:
| 级别 | 分配位置 | 选择标准 |
|---|---|---|
| Primary | 标题(前置) | 搜索量最高,核心产品词 |
| Secondary | 5个卖点各1个 | 中等搜索量,高相关性 |
| Tertiary | 描述 | 较低搜索量,长尾词 |
| Long-tail | 后台搜索词 | 剩余所有关键词 |
4. Listing 文案生成规则
标题(≤200字符):
[品牌] + [主关键词] + [核心属性1] + [核心属性2] + [次要关键词] + [差异化卖点]- 主关键词尽可能靠前(品牌名之后)
- 不使用全大写(品牌名除外)
- 不包含促销性描述("best"、"#1"等)
5个卖点(各≤500字符):
[大写利益标题] — [包含关键词的利益说明]- 卖点1:核心功能 + 主关键词
- 卖点2:使用场景 + 次要关键词
- 卖点3:材质/品质 + 信任信号
- 卖点4:包装内容/兼容性
- 卖点5:保障/差异化
描述(≤2000字符):
- 开头:痛点描述
- 中间:功能→利益展开
- 结尾:行动号召 + 包装清单
- 融入标题/卖点未覆盖的关键词
5. 8维度审计评分体系
| 维度 | 满分 | 评分要点 |
|---|---|---|
| 标题 | 15分 | 主关键词前置、品牌、属性完整、≤200字符、移动端不截断 |
| 卖点 | 15分 | 5个全用、利益导向、关键词自然嵌入、各≤500字符 |
| 图片 | 15分 | 7张以上、白底主图、信息图、生活场景、尺寸参照、视频 |
| A+内容 | 10分 | 是否存在、品牌故事、对比表、场景图 |
| 描述 | 10分 | 关键词覆盖、可读性、问题→方案结构 |
| 定价 | 10分 | 有竞争力、优惠券/促销 |
| 评论 | 15分 | 4.0星以上、100+评论、近期评论正面 |
| SEO覆盖 | 10分 | 主关键词在标题+卖点+描述中均有出现 |
6. 竞品关键词提取
当用户提供竞品 ASIN 时,工具通过抓取竞品商品页面的标题和卖点,提取其中的有效关键词,与自有关键词合并后生成覆盖面更广的 Listing。核心思路:覆盖竞品所有关键词 + 竞品遗漏的关键词。
7. 多站点语言适配
输出语言自动匹配目标站点:
- US/UK/AU/CA/IN → 英文
- DE → 德文
- FR → 法文
- JP → 日文
- ES/MX → 西班牙文
- IT → 意大利文
- BR → 葡萄牙文
与其他 Skill 的联动
amazon-keyword-research(关键词研究)
↓ 输出关键词列表
amazon-listing-optimization(Listing生成)
↓ 优化后的Listing
amazon-ppc-campaign(广告投放)数据来源
本技能通过内置脚本 fetch-listing.sh 抓取Amazon商品页面(https://{domain}/dp/{ASIN}),使用 curl + grep 提取标题、价格、BSR、卖点、描述等核心Listing数据,支持12个Amazon站点(US、UK、DE、JP、FR、IT、ES、CA、AU、MX、IN、BR)。用户可提供竞品ASIN以抓取其Listing内容进行关键词提取和对比分析。
关键词来源支持四种渠道:(1) 通过 amazon-keyword-research 技能获取的关键词列表(含搜索量分类和商业意图标注);(2) 从竞品Listing中提取的关键词(标题和卖点中的有效词);(3) 卖家自行提供的关键词列表;(4) 通过 web_search 搜索Amazon上的竞品(site:amazon.com)进行自动发现。优化现有Listing模式(模式B)还需要用户提供当前Listing的文案内容或ASIN。
本技能不访问Seller Central后台数据,无法获取真实的搜索词报告、PPC转化率或广告数据。关键词搜索量为估算值,文案生成完全依赖AI模型,需要人工审核确保准确性和合规性。
局限性
- 无法访问 Seller Central 后台搜索词数据
- 无法获取精确搜索量(依赖关键词研究工具或估算)
- 无法访问 PPC 转化率和广告数据
- AI 生成的文案需要人工审核,确保准确性和合规性
#!/usr/bin/env bash
# Amazon Listing Fetcher — extracts listing data from an Amazon product page
# Usage: fetch-listing.sh <ASIN> [marketplace]
# Marketplaces: us (default), uk, de, fr, it, es, jp, ca, au, in, mx, br
set -uo pipefail
ASIN="${1:?Usage: fetch-listing.sh <ASIN> [marketplace]}"
MP="${2:-us}"
declare -A DOMAINS=(
[us]="www.amazon.com" [uk]="www.amazon.co.uk" [de]="www.amazon.de"
[fr]="www.amazon.fr" [it]="www.amazon.it" [es]="www.amazon.es"
[jp]="www.amazon.co.jp" [ca]="www.amazon.ca" [au]="www.amazon.com.au"
[in]="www.amazon.in" [mx]="www.amazon.com.mx" [br]="www.amazon.com.br"
)
DOMAIN="${DOMAINS[$MP]:-www.amazon.com}"
URL="https://${DOMAIN}/dp/${ASIN}"
# Fetch the page
PAGE=$(curl -sL \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
-H "Accept-Language: en-US,en;q=0.9" \
-H "Accept: text/html,application/xhtml+xml" \
--max-time 15 \
"$URL" 2>/dev/null)
if [ -z "$PAGE" ]; then
echo "ERROR: Failed to fetch $URL"
exit 1
fi
echo "=== LISTING DATA FOR $ASIN ($MP) ==="
echo "URL: $URL"
echo ""
# Title
echo "=== TITLE ==="
echo "$PAGE" | grep -o 'productTitle"[^>]*>[^<]*' | sed 's/productTitle"[^>]*>//;s/^[[:space:]]*//;s/[[:space:]]*$//' | head -1
echo ""
# Brand
echo "=== BRAND ==="
echo "$PAGE" | grep -o 'bylineInfo"[^>]*>[^<]*' | sed 's/bylineInfo"[^>]*>//;s/^[[:space:]]*Visit the //;s/ Store$//' | head -1
echo ""
# Price
echo "=== PRICE ==="
echo "$PAGE" | grep -o '<span class="a-offscreen">[^<]*</span>' | head -1 | sed 's/<[^>]*>//g'
echo ""
# Rating
echo "=== RATING ==="
echo "$PAGE" | grep -o '[0-9]\.[0-9] out of 5 stars' | head -1
echo ""
# Review count
echo "=== REVIEW COUNT ==="
echo "$PAGE" | grep -o 'acrCustomerReviewText"[^>]*>[^<]*' | sed 's/acrCustomerReviewText"[^>]*>//' | head -1
echo ""
# Bullet points
echo "=== BULLET POINTS ==="
echo "$PAGE" | grep -o 'a-list-item">[A-Z][^<]\{15,\}' | sed 's/a-list-item">//' | head -10
echo ""
# Description
echo "=== DESCRIPTION ==="
echo "$PAGE" | grep -o 'productDescription"[^>]*>.*</div>' | head -1 | sed 's/<[^>]*>//g;s/^[[:space:]]*//;s/[[:space:]]*$//' | head -5
echo ""
# Image count (main images)
echo "=== IMAGE COUNT ==="
IMG_COUNT=$(echo "$PAGE" | grep -o '"hiRes":"https://[^"]*"' | wc -l)
echo "$IMG_COUNT main images"
echo ""
# A+ Content detection
echo "=== A+ CONTENT ==="
if echo "$PAGE" | grep -q 'aplus-v2\|a-plus-content\|aplusPageWidget'; then
echo "YES — A+ Content detected"
else
echo "NO — No A+ Content found"
fi
echo ""
# BSR
echo "=== BEST SELLERS RANK ==="
echo "$PAGE" | grep -o '#[0-9,]* in [^<]*' | head -3
echo ""
# Category
echo "=== CATEGORY ==="
echo "$PAGE" | grep -o 'a-link-normal a-color-tertiary"[^>]*>[^<]*' | sed 's/.*>//;s/^[[:space:]]*//;s/[[:space:]]*$//' | head -5
echo ""
# Date first available
echo "=== DATE FIRST AVAILABLE ==="
echo "$PAGE" | grep -o 'Date First Available[^<]*' | sed 's/Date First Available//;s/[^A-Za-z0-9, ]//g;s/^[[:space:]]*//;s/[[:space:]]*$//' | head -1
echo ""
echo "=== END ==="