
开发一个Chrome插件,用于从亚马逊商品详情页提取关键信息(如标题、价格、评分、评论数等),并将数据导出为CSV文件。核心功能包括:
manifest.json:定义插件配置和权限content.js:注入页面脚本,提取数据popup.html + popup.js:用户交互界面background.js:处理下载逻辑(可选)#productTitlespan.a-price-wholespan.a-icon-alt#acrCustomerReviewText{
"manifest_version": 3,
"name": "Amazon Product Exporter",
"version": "1.0",
"permissions": ["activeTab", "downloads"],
"action": {
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["https://www.amazon.com/*"],
"js": ["content.js"]
}
]
}// 提取商品数据
function getProductData() {
const title = document.getElementById('productTitle')?.innerText.trim() || 'N/A';
const price = document.querySelector('span.a-price-whole')?.innerText || '0';
const rating = document.querySelector('span.a-icon-alt')?.innerText.replace(' stars', '') || '0';
const reviews = document.getElementById('acrCustomerReviewText')?.innerText.replace(',', '') || '0';
return { title, price, rating, reviews };
}
// 监听来自popup的消息
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === 'getProductData') {
sendResponse(getProductData());
}
});<!DOCTYPE html>
<html>
<body>
<button id="exportBtn">Export to CSV</button>
<script src="popup.js"></script>
</body>
</html>document.getElementById('exportBtn').addEventListener('click', async () => {
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
const response = await chrome.tabs.sendMessage(tab.id, { action: 'getProductData' });
// 生成CSV内容
const csvContent = `Title,Price,Rating,Reviews\n"${response.title}",${response.price},${response.rating},${response.reviews}`;
// 触发下载
const blob = new Blob([csvContent], { type: 'text/csv' });
const url = URL.createObjectURL(blob);
chrome.downloads.download({
url: url,
filename: `amazon_product_${Date.now()}.csv`
});
});$)、处理千分位分隔符(如1,000 → 1000),确保CSV格式正确。
div[data-component-type="s-search-result"]),批量提取数据。
try-catch块应对元素缺失或页面结构变化的情况。
console.log调试数据提取逻辑。setTimeout应对动态加载延迟。完整项目可打包为.zip并通过Chrome的开发者模式加载。