2017-03-04 117 views
0

我有一個網站,我需要解析它。解析網址,循環file_get_html(網址),然後獲取元素

首先,我必須解析頁面中的所有目錄的URL,然後我需要輸入所有的URL,然後遍歷所有的URL並再次解析每個頁面上的URL,然後遍歷所有的URL並獲取元素('.description DIV')。

我使用簡單的html dom。

但我有一個問題,當我想要瀏覽所有我第一次解析的網址時。 我得到空頁

include 'simple_html_dom.php'; 
$catalogs = file_get_html('http://optnow.ru/catalog'); 
$catalogLink = []; 
if(!empty($catalogs)) { 
    foreach($catalogs->find('div.cat-name a') as $catalog) { 
     $catalogUrl = 'http://optnow.ru/' . $catalog->href . '?page=0'; 
     $catalogLink[] = $catalogUrl; 
     $catalogHtml = file_get_html($catalogUrl); 
     $productsLink = $catalogHtml->find('.link-pv-name'); 
     print_r($productsLink->href); 
    } 
} 

我的錯誤在哪裏?

感謝。

+0

'$ catalogLink [0] $ catalogSingleLink' – mehulmpt

回答

1

你需要傳遞數組,而不是單一元素的foreach:

include 'simple_html_dom.php'; 
$catalog = file_get_html('http://optnow.ru/catalog'); 
$catalogLink = []; 
if(!empty($catalog)) { 
    foreach($catalog->find('div.cat-name a') as $catalogHref) { 
     $myLink = 'http://optnow.ru/' . $catalogHref->href . '?page=0'; 
     $catalogLink[] = $myLink; 
     echo '<pre>'; 
     print_r($myLink); 
     echo '</pre>'; 
    } 
    foreach ($catalogLink as $catalogSingleLink) { 
     if(!empty($catalogSingleLink)) { 
      $catalogHtml = file_get_html($catalogSingleLink); 
      $catalogProduct = $catalogHtml->find('.link-pv-name'); 
      echo $catalogProduct->href; 
     } 
    } 
} 
+0

如果我打印$ catalogSinglLink我會像所有的URL字符串剛http://optnow.ru/categories/istochniki-pitaniya?page=0http://optnow.ru/categories/avtoaksessuary?page=0http://optnow.ru/categories/selfie?page=0http://optnow。 RU /分類/音頻aksessuary? – Frunky

+0

.......是...... – mehulmpt

+0

好的,但我只需要獲取一個url,然後在每個循環中進行下一步。我需要爲()循環和迭代每個url? – Frunky