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

PHP拆分亚马逊平均评分:仅保留数字评分的实现方法

解决亚马逊评分提取数字的问题

嘿,我来帮你搞定这个需求!你现在已经能拿到包含评分的内容了,只需要多一步处理就能把数字单独拆出来,这里给你两种靠谱的方法:

方法一:简单拆分法(适合新手)

这种方法利用空格分隔“4.5”和“étoiles”的特点,直接拆分取第一个元素:

<?php 
$url = 'https://www.amazon.fr/gp/customer-reviews/widgets/average-customer-review/popover/ref=dpx_acr_pop_?contextId=dpx&asin=B01N05ZMTK'; 
$content = file_get_contents($url); 

// 第一步拆分出包含评分的片段
$first_step = explode('<span class="a-size-base a-color-secondary">' , $content ); 

// 先检查是否成功拿到目标片段,避免报错
if(isset($first_step[1])){
    // 按空格拆分评分文本,分离数字和"étoiles"
    $rating_parts = explode(' ', $first_step[1]);
    // 取拆分后的第一个元素,trim去掉可能的多余空格/换行
    $rating_number = trim($rating_parts[0]);
    // 输出你要的数字评分
    echo $rating_number;
} else {
    // 如果没找到评分,输出默认提示
    echo 'N/A';
}
?>

方法二:正则匹配法(更健壮)

如果亚马逊页面结构有小变化(比如空格变成其他分隔符),正则表达式能更稳定地提取数字:

<?php 
$url = 'https://www.amazon.fr/gp/customer-reviews/widgets/average-customer-review/popover/ref=dpx_acr_pop_?contextId=dpx&asin=B01N05ZMTK'; 
$content = file_get_contents($url); 

// 用正则匹配整数或小数形式的评分数字
if(preg_match('/<span class="a-size-base a-color-secondary">(\d+\.?\d*)/', $content, $matches)){
    $rating_number = $matches[1];
    echo $rating_number;
} else {
    // 匹配失败时的兜底输出
    echo 'N/A';
}
?>

小提醒

  • 亚马逊可能会限制file_get_contents的请求,建议你换成cURL并设置浏览器的User-Agent头,避免被反爬拦截;
  • 亚马逊的页面结构偶尔会更新,要是以后提取失效了,记得检查目标元素的class名有没有变化哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:42:20