如何使用所有匹配的类来刮取div的html内容

时间:2016-07-11 07:37:05

标签: php dom web-scraping

我需要抓的网站有像

这样的结构
<span class="address">
<p>...</p>
<h4>...</h4>
....
</span>

我需要的只是

中的html
<span class="address"></span>

我使用的是谷歌的代码。

$html = new DOMDocument();
@$html->loadHtmlFile('www.site.com');
$xpath = new DOMXPath( $html );
$nodelist = $xpath->query( '//*[@id="main_center"]/div/div/div[2]/div/span[15]/p[6]' );

foreach ($nodelist as $n){
 echo $n->nodeValue."\n";
}

它只给了我没有HTML的内容,我需要所有的HTML,以便我可以根据我的需要过滤它们。

请提供建议, 谢谢。

1 个答案:

答案 0 :(得分:2)

尝试

<?php

  $html = new DOMDocument();
  @$html->loadHtmlFile('http://php.net/manual/de/domdocument.savehtml.php');
  $xpath = new DOMXPath( $html );
  $nodelist = $xpath->query( '//footer' );

  foreach ($nodelist as $n){
    echo $html->saveHtml($n)."\n";
  }

见:http://php.net/manual/en/domdocument.savehtml.php 经过测试,效果很好。

你直接向浏览器外出吗? 然后看一下生成的源代码,html标签不会显示在brwoser中......

hth oli