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)
将文档加载到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查询...)
就个人而言,我喜欢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这样的选择器:)