0

一些测试从使用简单的 html dom 中获取a标签。http://www.msnbc.msn.com/

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.msnbc.msn.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
$htmls = curl_exec($ch);
curl_close($ch);
$html = str_get_html($htmls);
foreach($html->find('a') as $element){ 
    echo $element.'<br />';
}

此代码可以获得所有超链接,但如何忽略中的所有链接div#mainNav?我需要从div#mainNavin 中获取所有链接http://www.msnbc.msn.com/,谢谢。

4

1 回答 1

2

检查父级,如下所示:

foreach($html->find('a') as $element){ 
    if ($element->parent()->id == 'mainNav') {
        //do nothing
    } else {
        echo $element.'<br />';
    }
}
于 2012-06-01T19:44:33.160 回答