Я попытался получить мета-теги товаров (например, 10000) с сайта электронной коммерции. Скрипт работает иногда и не работает в остальное время. Я сталкиваюсь с ошибкой
Неустранимая ошибка: вызов функции-члена find () для необъекта в …
Пожалуйста, предложите лучший способ сделать это.
Вот код, который я использую:
$url = "http://www.amazon.com/dp/".$asin;
$html = file_get_html( $url );
$metatags = array();
foreach( $html->find( 'meta[name]' ) as $meta ) {
$metatags[ 'meta' ][] = array(
'name' => $meta->name,
'content' => $meta->content
);
}
Как отмечает @Dagon, это лучший подход к использованию API Amazon, эта ссылка имеет хороший учебник в этой теме
В любом случае, чтобы решить проблему с кодом, попробуйте это:
$url = "http://www.amazon.com/dp/".$asin;
$html = file_get_html( $url );
$metatags = array();
$names = array();
try{
$names = $html->find( 'meta[name]' );
}
catch(Exception $e)
{
error_log("Error: ".$e->getMessage());
}
foreach( $names as $meta ) {
$metatags[ 'meta' ][] = array(
'name' => $meta->name,
'content' => $meta->content
);
}
Других решений пока нет …