You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Simple HTML DOM Parser从亚马逊提取产品图片、名称与价格

使用Simple HTML DOM Parser从亚马逊提取产品信息

准备工作

  • 下载Simple HTML DOM Parser库,解压后在PHP项目中引入simple_html_dom.php文件。
  • 确保环境支持PHP的file_get_contents或cURL(推荐用后者,稳定性更强)。

核心代码示例

以下是针对亚马逊产品页提取图片、名称、价格的可运行代码:

<?php
// 引入解析器库
require_once('simple_html_dom.php');

// 替换为目标亚马逊产品URL
$targetUrl = 'https://www.amazon.com/dp/B08N5WRWNW';

// 模拟浏览器请求头,规避基础反爬
$requestOpts = [
    'http' => [
        'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36\r\n"
    ]
];
$context = stream_context_create($requestOpts);

// 获取页面HTML内容
$pageHtml = file_get_contents($targetUrl, false, $context);
if (!$pageHtml) {
    die('页面获取失败,请检查URL或网络状态');
}

// 初始化DOM解析器
$dom = str_get_html($pageHtml);

// 提取产品名称(对应页面id为productTitle的元素)
$nameElement = $dom->find('#productTitle', 0);
$productName = $nameElement ? trim($nameElement->plaintext) : '未抓取到产品名称';

// 提取产品价格(兼容亚马逊常见的价格结构)
$priceWhole = $dom->find('span.a-price-whole', 0);
$priceFraction = $dom->find('span.a-price-fraction', 0);
$productPrice = '';
if ($priceWhole && $priceFraction) {
    $productPrice = trim($priceWhole->plaintext) . '.' . trim($priceFraction->plaintext);
} else {
    // 备用抓取逻辑:取a-offscreen类的价格元素
    $altPrice = $dom->find('span.a-offscreen', 0);
    $productPrice = $altPrice ? trim($altPrice->plaintext) : '未抓取到产品价格';
}

// 提取产品主图(优先取高清图,解析data-a-dynamic-image属性)
$imageElement = $dom->find('#landingImage', 0);
$productImage = '';
if ($imageElement && $imageElement->getAttribute('data-a-dynamic-image')) {
    $imageData = json_decode($imageElement->getAttribute('data-a-dynamic-image'), true);
    // 按图片分辨率从高到低排序,取最高清的图
    arsort($imageData);
    $productImage = key($imageData);
} else {
    // 备用逻辑:直接取src属性的图片链接
    $productImage = $imageElement ? $imageElement->src : '未抓取到产品图片';
}

// 输出结果
echo "产品名称:{$productName}\n";
echo "产品价格:{$productPrice}\n";
echo "产品图片URL:{$productImage}\n";

// 清理DOM资源,避免内存泄漏
$dom->clear();
unset($dom);
?>

重要提示

  • 页面结构变动:亚马逊的HTML元素ID、类名经常会调整,若代码失效,需用浏览器开发者工具重新定位目标元素。
  • 反爬规避:亚马逊有严格反爬机制,不要短时间内频繁请求,建议添加请求间隔、使用代理IP,且始终保持合法的请求头。
  • 合规性:爬取前请确认符合亚马逊Robots.txt协议及当地法律法规,避免违规。

内容的提问来源于stack exchange,提问作者Bala2125

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:57:36