ppq-dl
Use when collecting Amazon product details, keyword rankings, sponsored positions, BSR lists, or store ASIN snapshots from a real browser session in Hermes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when collecting Amazon product details, keyword rankings, sponsored positions, BSR lists, or store ASIN snapshots from a real browser session in Hermes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | ppq-dl |
| description | Use when collecting Amazon product details, keyword rankings, sponsored positions, BSR lists, or store ASIN snapshots from a real browser session in Hermes. |
| version | 1.0.0 |
| platforms | ["macos","linux"] |
| metadata | {"hermes":{"tags":["amazon","ecommerce","asin","bsr","sponsored","ranking","browser","seller"],"category":"ecommerce"}} |
Hermes 版 ppq-dl 用于在真实浏览器会话里读取 Amazon 页面数据,服务于商品调研、关键词自然位/广告位分析、BSR 扫描、店铺监控和排名快照。
这个目录是 Hermes 适配层,不替换仓库根目录的 OpenClaw 版。
首次使用,优先执行:
bash "${HERMES_SKILL_DIR}/scripts/install_hermes.sh"
如果当前还没有 HERMES_SKILL_DIR,也可以从仓库运行:
bash /absolute/path/to/ppq-dl/hermes/ecommerce/ppq-dl/scripts/install_hermes.sh
如果你希望它顺手启动本地调试浏览器:
bash /absolute/path/to/ppq-dl/hermes/ecommerce/ppq-dl/scripts/install_hermes.sh --launch-browser
完成后:
/browser connectppq-dl如果还没有带调试端口的本地浏览器,可先启动:
bash "${HERMES_SKILL_DIR}/scripts/launch_local_chrome.sh"
健康检查:
bash "${HERMES_SKILL_DIR}/scripts/hermes_browser_doctor.sh"
更细的浏览器接入说明见 references/browser-cdp-setup.md。
Hermes 版优先使用这些工具:
browser_navigatebrowser_snapshotbrowser_scrollbrowser_console(expression=...)browser_vision只有在确实需要原生 CDP 能力时,才使用 browser_cdp。
/browser connect。browser_snapshot(full=true) 或 browser_vision 判断:
数据源:Amazon Suggest API。无需浏览器。
python3 "${HERMES_SKILL_DIR}/scripts/kw_discovery.py" "coffee maker" 3
输出要求:
~/Documents/amazon-data/ 下的文件路径。数据源:Hermes 浏览器 → Amazon 搜索结果页。
流程:
https://www.amazon.com/s?k={URL编码关键词}。browser_snapshot 确认搜索结果卡片已经出现。browser_console(expression=...) 提取结果卡片。browser_vision 再分析。搜索结果提取 JS:
JSON.stringify(Array.from(document.querySelectorAll('[data-component-type="s-search-result"]')).slice(0, 24).map(function (card, i) {
var asin = card.getAttribute('data-asin') || '';
var titleNode = card.querySelector('h2');
var title = titleNode ? titleNode.textContent.trim() : '';
var rating = card.querySelector('[aria-label*="stars"]');
var review = card.querySelector('a[href*="customerReviews"] span');
var whole = card.querySelector('.a-price-whole');
var frac = card.querySelector('.a-price-fraction');
var price = whole ? whole.textContent.trim().replace(/\.$/, '') : '';
if (price && frac) price += '.' + frac.textContent.trim();
return {
pos: i + 1,
asin: asin,
title: title,
brandGuess: title.split(/\s+/)[0] || '',
rating: rating ? rating.getAttribute('aria-label') : '',
reviews: review ? review.textContent.trim().replace(/[()]/g, '') : '',
price: price || '',
sponsored: !!card.querySelector('.puis-sponsored-label-text, [aria-label="Sponsored"]')
};
}))
输出报告至少包含:
数据源:Hermes 浏览器 → Amazon 产品详情页。
流程:
https://www.amazon.com/dp/{ASIN}。browser_snapshot(full=true) 或 browser_console(expression=...) 确认 #productTitle 已可读。browser_console(expression=...) 提取基础信息、图片、A+ 和关联产品。基础信息提取 JS:
(function () {
var text = document.body.textContent || '';
var bsrStart = text.indexOf('Best Sellers Rank');
var bsr = bsrStart >= 0 ? text.slice(bsrStart, bsrStart + 350).replace(/\s+/g, ' ') : '';
return JSON.stringify({
title: document.querySelector('#productTitle')?.textContent?.trim() || '',
price: document.querySelector('.a-price .a-offscreen')?.textContent?.trim() || '',
listPrice: document.querySelector('.basisPrice .a-offscreen')?.textContent?.trim() || '',
rating: document.querySelector('#acrPopover')?.getAttribute('title') || '',
reviewCount: document.querySelector('#acrCustomerReviewText')?.textContent?.trim() || '',
stock: document.querySelector('#availability span')?.textContent?.trim() || '',
bsr: bsr,
mainImage: document.querySelector('#landingImage')?.getAttribute('src') || '',
hasAPlus: !!document.querySelector('#aplus_feature_div')
});
})()
输出报告至少包含:
数据源:Hermes 浏览器 → Amazon 搜索页。
流程:
~/Documents/keyword-rankings/ranking_history.json,必要时用 scripts/catalog.py 注册摘要。排名提取 JS:
(function (targetAsin) {
var cards = Array.from(document.querySelectorAll('[data-component-type="s-search-result"]'));
var pos = -1;
cards.forEach(function (card, i) {
if ((card.getAttribute('data-asin') || '') === targetAsin) pos = i + 1;
});
return JSON.stringify({ position: pos, totalCards: cards.length, url: location.href });
})('{ASIN}')
输出要求:
数据源:Hermes 浏览器 → Amazon Best Sellers / Movers & Shakers / New Releases / Most Wished For。
原则:
BSR 页面产品提取 JS:
JSON.stringify(Array.from(document.querySelectorAll('.p13n-sc-uncoverable-faceout')).map(function (card, i) {
var asin = card.id || '';
var title = card.querySelector('[class*=line-clamp]')?.textContent?.trim() || '';
var rating = card.querySelector('a[aria-label*="stars"]')?.getAttribute('aria-label') || '';
var text = card.textContent.replace(/\s+/g, ' ');
var price = (text.match(/\$\s?\d+(?:\.\d{2})?/) || [''])[0];
return { rank: i + 1, asin: asin, title: title, rating: rating, price: price };
}).filter(function (x) { return x.asin || x.title; }))
输出要求:
数据源:Hermes 浏览器 → Amazon 品牌店铺页。
流程:
a[href*="/stores/"],或使用用户提供的店铺 URL。[data-asin]。店铺 ASIN 提取 JS:
JSON.stringify(Array.from(document.querySelectorAll('a[href*="/dp/"]')).map(function (a) {
return ((a.getAttribute('href') || '').match(/\/dp\/([A-Z0-9]{10})/) || [])[1] || '';
}).filter(Boolean).filter(function (asin, idx, arr) {
return arr.indexOf(asin) === idx;
}))
默认目录:
~/Documents/amazon-data/~/Documents/keyword-rankings/~/Documents/amazon-data/_catalog.json保存数据时必须包含:
typetimestampmetadatadata本 skill 自带的持久化脚本:
${HERMES_SKILL_DIR}/scripts/catalog.py${HERMES_SKILL_DIR}/scripts/config.py${HERMES_SKILL_DIR}/scripts/kw_discovery.py当前仅能基于可见页面数据判断,无法推断不可见销量或完整市场规模。