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#mainNavhttp://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 に答える