使用php DOMDocument从网页中提取文本

时间:2012-03-18 12:57:09

标签: php html domdocument text-extraction

我有以下脚本,除了两件事外几乎没有问题:

  • 我仍然拥有<note><to><?xml version="1.0" encoding="ISO-8859-1"?>
  • 等知识标签
  • 我也有javascript脚本,我试图用//text()[not(self::script)]排除它们但是这打破了xpath

脚本:

$contents = file_get_contents("http://www.w3schools.com/php/php_xml_dom.asp");
$dom = new DOMDocument();
@$dom->loadHTML($contents);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);
// see http://www.w3schools.com/xpath/xpath_syntax.asp
$hrefs = $xpath->evaluate("//text()");
for ($i = 0; $i < $hrefs->length; $i++)
  echo $hrefs->item($i)->nodeValue;

您是否有更好的解决方案从网页中提取文字?

注意:我可以简单地使用strip_tags,但我想坚持使用DOMDocument。

1 个答案:

答案 0 :(得分:2)

我总是使用这个http://simplehtmldom.sourceforge.net/并且每次都成功。