我从远程服务器使用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;
}
}
}
}
答案 0 :(得分: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);
}
(未经过测试,因此您可能需要稍微调整XPath查询...)
答案 1 :(得分:6)
就个人而言,我喜欢Simple HTML Dom Parser。
include "lib.simple_html_dom.php"
$html = file_get_html('http://scrapeyoursite.com');
$html->find('div.text')->plaintext;
很简单,对吧?它适用于像jQuery这样的选择器:)
答案 2 :(得分:0)
或者像我这样使用我的代码:
include "simple_html_dom.php";
$html = new simple_html_dom();
$html->load_file('www.yoursite.com');
$con_div = $html->find('div',0);//get value plaintext each html
用明文回复$ con_div ..
$con_div->plaintext;
这意味着你会在数组中找到第一个div('div',0)并以纯文本显示它。 我希望它可以帮助你:欢呼