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

使用Simple_HTML_DOM_PARSER通过Full XPath爬取数据失败求助

使用Full XPath改进爬取代码

由于simple_html_dom对复杂XPath的支持有限,推荐改用PHP原生的DOMDocument+DOMXPath组合来实现需求,以下是修改后的完整代码:

function display_html_info() {
    $target_url = 'https://asiftestingsite.online/index.php/2023/11/22/testing-post/';
    
    // 获取目标页面内容
    $page_content = file_get_contents($target_url);
    if (!$page_content) {
        return '无法加载目标页面内容';
    }
    
    // 初始化DOM解析器,屏蔽HTML不规范的错误提示
    $dom = new DOMDocument();
    libxml_use_internal_errors(true);
    $dom->loadHTML($page_content);
    libxml_clear_errors();
    
    // 初始化XPath查询工具
    $xpath = new DOMXPath($dom);
    
    // 执行你提供的Full XPath查询
    $query = '/html/body/div[3]/main/div[1]/article/div[2]/div/span';
    $matched_elements = $xpath->query($query);
    
    // 返回结果或提示信息
    if ($matched_elements->length > 0) {
        return trim($matched_elements->item(0)->nodeValue);
    } else {
        return '未找到目标内容';
    }
}
add_shortcode('show_this_data', 'display_html_info');

关键说明:

  • 原生DOMXPath对复杂层级结构的支持更可靠,能精准匹配你指定的Full XPath路径
  • 加入了基础错误处理:页面加载失败或无匹配内容时会返回明确提示
  • trim()用于清理文本前后的空白字符,优化展示效果

注意点:

  • 若目标网站的HTML结构发生变化(比如div的索引位置改动),当前XPath会失效,需要重新调整路径
  • 频繁爬取可能触发目标站的反爬机制,建议添加请求缓存或控制爬取频率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:19:53