如何通过PHP获取div?

trr*_*rrm 3 html php parsing dom

file_get_contents从远程服务器获取一个页面,但我想过滤该页面并使用PHP从中获取具有类"text"的DIV.我开始了,DOMDocument但我现在迷路了.

有帮助吗?

$file = file_get_contents("xx");
$elements = new DOMDocument();
$elements->loadHTML($file);
foreach ($elements as $element) {
    if( !is_null($element->attributes)) {
        foreach ($element->attributes as $attrName => $attrNode) {
            if( $attrName == "class" && $attrNode== "text") {
                echo $element;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 9

将文档加载到DOMDocument实例后,可以在其上使用XPath查询 - 这可能比通过DOM更容易.

为此,您可以使用DOMXpath该类.


例如,您应该可以执行以下操作:

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

$xpath = new DOMXPath($dom);
$tags = $xpath->query('//div[@class="text"]');
foreach ($tags as $tag) {
    var_dump($tag->textContent);
}
Run Code Online (Sandbox Code Playgroud)


(未经过测试,因此您可能需要稍微调整XPath查询...)


mač*_*ček 6

就个人而言,我喜欢Simple HTML Dom Parser.

include "lib.simple_html_dom.php"

$html = file_get_html('http://scrapeyoursite.com');
$html->find('div.text')->plaintext;
Run Code Online (Sandbox Code Playgroud)

很简单,对吧?它适应像jQuery这样的选择器:)