2017-02-20 125 views
0

我一直在使用網絡爬蟲。它爲少數網站, 現在當我試過這個特定的網站,它什麼都沒有。沒有錯誤沒有。PHP DOM Web Crawler打印「沒有」。沒有錯誤,沒有什麼

我不知道哪裏出了問題..

的代碼放在爲:

<?php 
    require_once('dom/simple_html_dom.php'); 
    $html = file_get_html('http://www.studentdoc.com/phpBB2/viewforum.php?f=18&sid=2a150b97528c8ec47600692cc77daaf3'); 
    $elementCount=0; 
    foreach($html->find('dl.icon a') as $elemen) { 
    foreach($elemen->find('dt a') as $element) { 
    $elementCount++; 
    $element->href = "http://www.usmleforum.com" . $element->href; 
    echo '<li target="_blank" class="itemtitle">'; 
    if($elementCount < 5 && $elementCount > 2 && rand(0,1) == 1) { 
    echo '<span class="item_new">new</span>'; 
} 
    echo $element; 
    echo '</li>';       
    if($elementCount==12){ 
     break; 
    } 
} 
} 
?> 

請到通過下面給出的鏈接,HTML結構..

http://www.studentdoc.com/phpBB2/viewforum.php?f=18&sid=2a150b97528c8ec47600692cc77daaf3

任何幫助讚賞..

+0

您應該添加到目前爲止所做的故障排除步驟以及結果。 – mkaatman

+0

沒有人..它什麼也沒有打印 – harishk

+0

在那裏添加一些消息。基本的疑難解答,比如在每個循環中放入一個回聲來查看它到底有多遠。打開錯誤記錄並查看是否有任何東西。檢索URL後檢查html是否有值。 – mkaatman

回答

1

沒有DOM元素如dl.icon a dt a。您可能需要取dl.icon dt a。從find方法的第一個參數中刪除a

在提出問題之前,請務必嘗試調試您的代碼。簡單的echo "A"; die(); echo "B"; die();之後每次發言都會非常有幫助:)

在這種情況下第二個foreach一直有0個元素。

+0

ohh man ..我是怎麼錯過的...和另一個..就像你在我的代碼中看到的,我把如果聲明僅用於打印12個聲明從網站..它有點不執行..你知道爲什麼 – harishk

+0

Becouse $ elementCount總是爲0 – Marek

+0

,但是在'for each'語句中,我給了'$ elementCount ++;' – harishk