php - 使用 PHP 删除 HTML 部分

标签 php html screen-scraping

我有一个要编辑的 html 页面。我想删除某个部分,如下所示:

<ul class="agentDetail">
........
.......
........
</ul>

我希望能够删除标签和它们之间的所有内容。我的想法是编辑一个页面并重新显示它减去一些我不想被看到的数据(因此删除了一些部分)。

我如何在 php 中执行此操作?

最佳答案

我建议将代码解析为 XML,然后使用 XPath 取消/选择您需要的节点。这是一个起点:

$dom = getDom("http://www.stackoverflow.com");
parseDom($dom);

function getDom($url)
{
    $contentUtf8 = $this->fetchDataFromUrl($url);
    $htmlData = mb_convert_encoding($contentUtf8, 'HTML-ENTITIES', "UTF-8");

    $dom = new DomDocument('1.0', 'utf-8');
    $dom->substituteEntities = false;
    $dom->preserveWhitespace = false;
    @$dom->loadHTML($htmlData);

    return $dom;
}

function parseDom($dom)
{
    $xpath = new DOMXPath($dom);
    $nodes = $xpath->query("//ul[@class='agentDetail']");

    // manipulate nodes here...
}

关于php - 使用 PHP 删除 HTML 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3263251/

相关文章:

Xpath 获取同一 div 中包含混合元素的文本

php - Nginx:413 请求实体太大

php - 新行 (\r\n) 在电子邮件正文中不起作用

javascript - Flowplayer 具有不自动播放的播放列表

java - 在javascript中调用java方法

c# - HTML Agility Pack 屏幕抓取 XPATH 未返回数据

PHP elasticsearch 部分匹配

php - Laravel 查询,显示一个表中的结果,其 id 不在另一个表中

html - 移动设备的水平下拉菜单到垂直堆栈菜单

Rvest html_table 错误 - out[j + k, ] : subscript out of bounds 中的错误