2013-07-05 191 views
1

我正在使用PHP簡單的HTML DOM解析器從10.000+頁獲取電子郵件地址。簡單的HTML DOM解析器錯誤

require_once('simple_html_dom.php'); 
$html = file_get_html('http://www.myurl'); 
$email = $html->find('dl', 5)->children(3); 

有時會得到跟隨誤差。可能是因爲某些網頁的沒有標籤:

​​

如何避免這種錯誤,如果一個頁面中不包含我正在尋找的信息,而無需中斷完整的腳本?

+0

'find()'找不到任何東西,所以它返回的沒有 - > children()方法。 –

回答

2

你可以測試,看看是否$email是使用is_object()功能,例如一個對象

$email = $html->find('dl', 5); 
if(is_object($email) === true) 
{ 
    print_r($email->children(3)); 
} 
else continue; 

這可能比測試使用外部庫的孩子更快,因爲它使用PHP引擎中已經存在的函數。

2

如果存在不確定性,請不要鏈接您的方法。分配$email = $html->find('dl', 5) - 再測試,如果有任何的孩子,可能與hasChildNodes