从复杂的html页面获取内容?

时间:2012-07-08 23:52:10

标签: php html simple-html-dom

我一直试图遍历这个html网页,以获得位于下面嵌套的代码段中的商业名称。所有的id都是独一无二的。我尝试过使用simple_html_dom但是遇到了麻烦。我对PHP很新,但是学习者也是如此,所以在正确的方向上有一点我希望我能解决这个问题。

我尝试使用的网页是http://yellow.co.nz/yellow+pages/funeral+home/New+Zealand?page=1&stageName=Composite+search&activeSort=name-asc&suppressMobileListings=false

<div class="result standard">
    <div class="resultBody"> 
        <div class="listingMain">
            <div class="vcard">
                <a class="fn openPreview">
                    <span>Biz Name</span>

2 个答案:

答案 0 :(得分:1)

您可以尝试Goutte并执行类似

的操作
use Goutte\Client;

$client = new Client();
$crawler = $client->request('GET', 'http://yellow.co.nz/yellow+pages/funeral+home/New+Zealand?page=1&stageName=Composite+search&activeSort=name-asc&suppressMobileListings=false');

$businessNames = array();
$crawler->filter('vcard > fn > span')->each(function($node, $i){
  $businessNames[] = $node->text();   
});

答案 1 :(得分:0)

当我在过去遇到过类似的问题时(通过任意层次结构挖掘目标节点),我发现XPath是最有用的解决方案:

PHP DOM Xpath documentation

它允许您使用非常简单的XPath查询来立即定位感兴趣的节点。