Задать вопрос

Как отловить 404 ошибку при парсинге?

Здравствуйте!

Есть простой и тупой код на пхп с simple_html_dom.php. Парсю как раз им. Есть много страниц товаров, но, к примеру, есть 100 и 102, но нет 101. Как мне поймать 404 ошибку?

$e = 'HTTP_Exception_404';
try {
$data = file_get_html('ссылка');
} catch (Exception $e) {
echo $e;
}
  • Вопрос задан
  • 4352 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
akashtrih
@akashtrih
Почему бы не распарсить страницу с 404 ошибкой тем же simple_html_dom?
То есть

try {
    $data = file_get_html('ссылка');
    // например, на странице с ошибкой текст ошибки '<div class="error">... Ошибка 404, товар не найден ...</div>'
    if (false !== strpos($data->find('div.error', 0)->plaintext, '404')) {
          throw new Exception('HTTP_Exception_404');
    }
    else {
          // дальнейшая обработка данных
    }
} catch (Exception $e) {
    echo $e->getMessage();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
$handle = curl_init($url);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($handle);
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
curl_close($handle);
if($httpCode == 200) {
  $data=str_get_html($response);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы