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

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

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

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

$e = 'HTTP_Exception_404';
try {
$data = file_get_html('ссылка');
} catch (Exception $e) {
echo $e;
}
  • Вопрос задан
  • 4371 просмотр
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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);
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽