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

使用Simple HTML DOM Parser抓取WordPress隐藏内容遇问题求助

解决Simple HTML DOM Parser抓取Read More插件隐藏内容的问题

嘿,我懂你遇到的麻烦——Read More插件把部分文章内容藏在了带display:none样式的.brm类div里,导致常规抓取拿不到这部分内容对吧?别担心,Simple HTML DOM Parser完全能搞定这个,因为它是直接解析HTML结构,根本不管CSS样式是否隐藏内容。

下面是具体的解决步骤和代码示例:

1. 定位并提取隐藏内容

首先,你需要用Simple HTML DOM的选择器精准选中.brm元素,然后直接提取它的内部内容——不管它的display:none样式,这对HTML解析器来说完全不是障碍。

2. 完整实现代码

给你一个能把可见内容和隐藏内容合并的完整示例:

// 引入Simple HTML DOM Parser库
include('simple_html_dom.php');

// 获取目标WordPress文章的HTML内容
$html = file_get_html('你的目标文章URL');

// 定位到文章的主内容容器
$mainContentContainer = $html->find('.mycontent', 0);

if ($mainContentContainer) {
    // 先提取可见的正文内容
    $visibleContent = $mainContentContainer->plaintext;
    
    // 在主容器内查找隐藏的.brm div
    $hiddenContentDiv = $mainContentContainer->find('.brm', 0);
    
    if ($hiddenContentDiv) {
        // 合并可见内容与隐藏内容
        $fullArticleContent = $visibleContent . ' ' . $hiddenContentDiv->plaintext;
        echo $fullArticleContent;
    } else {
        // 没有隐藏内容的情况,直接输出可见内容
        echo $visibleContent;
    }
} else {
    echo '无法定位到文章内容容器';
}

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

额外注意事项

  • 确保你正确引入了simple_html_dom.php文件,路径要和你的脚本位置匹配。
  • 如果插件是通过AJAX动态加载隐藏内容(而不是直接把内容写在HTML里仅用CSS隐藏),那上面的方法就不管用了——这种情况下你需要模拟AJAX请求去获取内容,但根据你的描述,内容是直接在HTML结构里的,所以上面的代码应该完全适用。
  • 要是插件后续修改了.brm类名,记得同步更新选择器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:41:20