2013-03-04 33 views
-1

我将如何检索a.page_arrows简单的HTML DOM嵌套试图赶上下一个

<div class="page-nav"> 
    <a class="paginationNumberStyle page_arrows" data-url="/Building-Materials-Concrete-Cement-Masonry/h_d1/N-5yc1vZ25ecodZarlk/h_d2/Navigation?catalogId=10053&amp;Nu=P_PARENT_ID&amp;langId=-1&amp;Nao=384&amp;storeId=10051"> 
    <img alt="" src="/static/images/layout/triangle-green-left.gif"></a>       
    <span>6</span> 
    <a class="paginationNumberStyle" data-url="/Building-Materials-Concrete-Cement-Masonry/h_d1/N-5yc1vZ25ecodZarlk/h_d2/Navigation?catalogId=10053&amp;Nu=P_PARENT_ID&amp;langId=-1&amp;Nao=576&amp;storeId=10051">7</a> 
    <a class="paginationNumberStyle" data-url="/Building-Materials-Concrete-Cement-Masonry/h_d1/N-5yc1vZ25ecodZarlk/h_d2/Navigation?catalogId=10053&amp;Nu=P_PARENT_ID&amp;langId=-1&amp;Nao=672&amp;storeId=10051">8</a> 
    <a class="paginationNumberStyle page_arrows" data-url="/Building-Materials-Concrete-Cement-Masonry/h_d1/N-5yc1vZ25ecodZarlk/h_d2/Navigation?catalogId=10053&amp;Nu=P_PARENT_ID&amp;langId=-1&amp;Nao=576&amp;storeId=10051"> 
    <img alt="" src="/static/images/layout/triangle-green-right.gif"></a> 
</div> 

我试图收集链接,然后进入下一个页面,并收集环节誓不罢休的最后一次出现没有嵌套页面。这是我的代码:

 getLinks('http://www.homedepot.com/Building-Materials-Concrete-Cement-Masonry/h_d1/N-5yc1vZ25ecodZarlk/h_d2/Navigation?catalogId=10053&Nu=P_PARENT_ID&langId=-1&storeId=10051&currentPLP=true&omni=c_Concrete,%20Cement%20&%20Masonry&searchNav=true'); 

    function getLinks($URL) { 


$html = file_get_contents($URL); 

$dom = new simple_html_dom(); 
$dom -> load($html); 

    foreach ($dom->find('a[class=item_description]') as $href){ 
    $url = $href->href; 
    echo $url.'<br>'; 
} 

if ($nextPage = $dom->find("a[class=paginationNumberStyle]" ,0)){ 
    $nextPageURL = 'http://www.homedepot.com'.$nextPage->getAttribute('data-url'); 

    $dom -> clear(); 
    unset($dom); 
    getLinks($nextPageURL); 
} else { 
    echo "\nEND"; 
    $dom -> clear(); 
    unset($dom); 
} 

} 
+0

对不起我的键盘是演戏了,因为我的孩子们用我的笔记本电脑 – dianeinflorida 2013-03-04 04:13:15

+0

好,但你仍然有缺口需要修复的问题。就像我在最后一个问题中所说的,获得a.page_arrows的最后一次出现是错误的方法。你想要的是识别里面有正确的箭头图像的链接。 – pguardiario 2013-03-04 04:22:02

+0

这是链接区域 ,那么我该如何指定triangle-green-right.gif而之前的数据url呢?还有关于清洗gummi的任何建议都会在我的钥匙之间产生粘性? – dianeinflorida 2013-03-04 06:11:29

回答

0

我有同样的问题,并使用children方法来抓取第一级的项目。

<ul class="my-list"> 
<li> 
    <a href="#">Some Text</a> 
    <ul> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
    </ul> 
</li> 
<li> 
    <a href="#">Some Text</a> 
    <ul> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
     <li><a href="#">Some Inner Text</a></li> 
    </ul> 
</li> 
</ul> 

而这里的简单的HTML DOM代码得到公正的第一级里的物品:

$html = file_get_html($url); 
$first_level_items = $html->find('.my-list', 0)->children(); 

foreach ($first_level_items as $item) { 
... do stuff ... 
}