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

PHP如何统计网页指定ID/Class元素数量并展示在页眉

招聘站点职位总数精准统计实现方案

你之前统计全页面H3标签的逻辑会混入页面其他模块的无关H3元素,导致结果不准,调整核心是缩小统计范围,只在职位列表的专属容器内匹配带唯一标识的职位元素,不要做全局标签检索,具体调整步骤和代码如下:

  • 先在职位列表页按F12打开开发者工具,确认两个关键标识:
    • 包裹所有职位条目的外层列表容器的唯一ID/Class(比如常见的容器ID为job-list、Class为jobs-container)
    • 单个职位条目/职位标题的唯一标识(比如你代码里已经用到的jobtitel标识,确认它是单个职位标题的专属ID/Class)
  • 用DOMXPath做精准条件查询,不要直接全局调用getElementsByTagName
  • 注意DOM扩展返回的节点列表结果要用->length属性取数量,不要直接用count()函数统计,避免部分PHP版本下结果异常

调整后可直接复用的代码

<?php
$htmlString = file_get_contents('https://www.mywebsite.de/unternehmen/jobs/');

// 初始化DOM文档对象
$htmlDom = new DOMDocument;
// 屏蔽非规范HTML标签导致的加载警告,载入页面内容
@$htmlDom->loadHTML($htmlString);
// 初始化XPath对象用于多条件精准元素查询
$xpath = new DOMXPath($htmlDom);

// 替换为你站点实际的元素匹配规则:
// 示例规则:统计ID为job-list的职位列表容器下,所有带jobtitel标识的职位标题H3标签
// 如果你是按职位卡片统计,可修改规则为 '//*[@class="job-card"]' 匹配所有带job-card类名的职位卡片元素
$jobNodeList = $xpath->query('//*[@id="job-list"]//h3[@id="jobtitel"]');

// 获取职位总数
$jobTotal = $jobNodeList->length;

echo "站点职位总数:" . $jobTotal . "<br/>";
?>

调试提示:如果首次运行统计结果不对,优先检查XPath里的选择器是否和页面实际元素的ID、Class完全匹配,只要选择器写对,统计结果不会混入其他无关元素。

内容的提问来源于stack exchange,提问作者itsme.vitali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:03:21