来自a
的一些测试获取http://www.msnbc.msn.com/
标记使用简单的html dom。
$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#mainNav
中获取http://www.msnbc.msn.com/
中的所有链接,谢谢。
答案 0 :(得分:2)
检查父母,如下所示:
foreach($html->find('a') as $element){
if ($element->parent()->id == 'mainNav') {
//do nothing
} else {
echo $element.'<br />';
}
}