Парсинг. Как автоматически определять ложный ответ 404

Тема в разделе "PHP", создана пользователем Zalom, 5 мар 2019.

  1. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    Здравствуйте. Есть задача собирать инфу с интернет-магазинов. Содержание страниц получаем с помощью curl. Некоторые страницы отдают код 404. Когда визуально проверяем эти страницы, выясняется что некоторые вполне рабочие и в браузере написан код 200, то есть у этих страниц ложный 404 код. Подскажите как программно определить (не заходя на страницу) какой код 404 ложный. Может есть команда какая то или функция. Вообще какие могут быть отличия?
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    ну так отправляйте фэйковый User-Agent вместе с запросом, раз в браузер пользователю отдаётся всё нормально.
     
  3. Zalom

    Zalom

    Регистрация:
    18 мар 2017
    Сообщения:
    37
    Симпатии:
    1
    Я использовал в curl User-Agent, но он наверно был какой-то кривой. Скопировал из своего браузера и сработало. Но по одной ссылке curl отдает
    Код:
    [url] = http://viplashes.ru/increase/2133/BINACIL-kraska-dlya-resnits-i-broveiy-chernaya.htm
    [content_type] =
    [http_code] = 0
    [header_size] = 0
    [request_size] = 0
    [filetime] = -1
    [ssl_verify_result] = 0
    [redirect_count] = 0
    [total_time] = 6.009856
    [namelookup_time] = 0.004129
    [connect_time] = 0
    [pretransfer_time] = 0
    [size_upload] = 0
    [size_download] = 0
    [speed_download] = 0
    [speed_upload] = 0
    [download_content_length] = -1
    [upload_content_length] = -1
    [starttransfer_time] = 0
    [redirect_time] = 0
    [redirect_url] =
    [primary_ip] = 178.208.83.9
    [certinfo] = Array
    [primary_port] = 80
    [local_ip] =
    [local_port] = 0
    [errno] = 7
    [errmsg] = Failed connect to viplashes.ru:80; Connection timed out
    [content] =
    
    
    Я поискал, нашел вот что
    1)забанили
    2) криво настроен firewall
    3) с хоста запрещены исходяшие соединения.

    Это как исправить можно?