小编Ste*_*ven的帖子

PHP DOMNode:如何不仅提取文本而且提取HTML标签

我正在尝试创建一个脚本来抓取网站以检索最新的新闻更新.不幸的是,我遇到了一个小问题,我似乎无法解决我对DOM的有限知识.

我正在尝试抓取的页面构建如下:

<table>
<tr class="color1">
<td>Author</td>
<td>Content <a href="#">in HTML</a></td>
<td>Date</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

除了内容,我可以检索我需要的字段.使用$ td-> nodeValue我以文本形式检索内容,而我想用HTML格式(那里有'a'标签,'blockquote'等)

这是我的代码:

try {
    $html = @ file_get_contents("test.php");
    checkIfFileExists($html);

    $dom = new DOMDocument();
    @ $dom->loadHTML($html);

    $trNodes = $dom->getElementsByTagName("tr");
    foreach ($trNodes as $tr) {

        if ($tr->getAttribute("class") == "color1" || $tr->getAttribute("class") == "color2") {

        $tdNodes = $tr->childNodes;
        foreach ($tdNodes as $td) {

            echo $td->nodeValue . "<br />\n";

        }
        echo "<br /><br /><br /><br /><br />\n";
    }
} catch(Exception $e) {
    echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)

我宁愿不必诉诸任何第三方图书馆,但显然任何答案都是最受欢迎的,图书馆与否.

提前致谢.

php dom screen-scraping

6
推荐指数
1
解决办法
849
查看次数

标签 统计

dom ×1

php ×1

screen-scraping ×1