php curl сайт выдаёт неизвестную ошибку

Вот код парсера:

<?php

header('Content-type: text/html; charset=utf-8');
require_once 'phpQuery/phpQuery/phpQuery.php';
include 'simple_html_dom.php';

function get_content ($url, $data = [])
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Connection: Keep-Alive',
      'Cookie: PHPSESSID=7nprldtjunhsccstu7e7nvd41f'
    ));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    // curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookiee.txt');
    // curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ .  '/cookiee.txt');
    $res = curl_exec($ch);
    if ($res === false) {  
        echo "cURL Error: " . curl_error($ch);
    }
    curl_close($ch);
    return $res;
}

$count = 0;
$url = 'https://like.doctor/russia/vrachi/stomatolog';

$load_doctor = [
    'nextpage' => '1',
    'perpage' => '35',
    'data[urlstring]' => 'stomatolog',
    'data[cityurl]' => 'russia',
    'data[pagedata][city]' => 'false',
    'data[pagedata][region]' => 'false',
    'data[pagedata][country]' => '1',
    'data[pagedata][order]' => 'false',
    'data[pagedata][specialization]' => '2'
];


$data = get_content($url, $load_doctor);
// $data = str_get_html($data);
echo $data;


$data->clear();
unset($data);

?>

Вот ошибка: ![введите сюда описание изображения]1


Ответы (1 шт):

Автор решения: Igor Dyshlenko

Судя по коду $url = 'https://like.doctor/russia/vrachi/stomatolog'; и тому факту, что сообщение об ошибке обнаружено в загруженном HTML-контенте, проблема находится на сайте, чью страницу Вы загружаете. О чем, кстати, Вас просят любезно сообщить разработчики самого сайта: "На сервере произошла непредвиденная ошибка Пожалуйста, напишите нам на [email protected] и опишите как вы получили данную ошибку."

Рекомендую воспользоваться предложенной консультацией разработчиков сайта, чей контент Вы пытаетесь спарсить, и уточнить у них, по какой причине страница грузится с ошибкой. Ну, или как минимум зайти браузером на их сайт и сравнить контент, загруженный браузером, с контентом, загруженным парсером. Возможно, там что-то должен догрузить javascript, или из-за каких-то заголовков или параметров запроса часть контента не генерируется.

UPD.

Качнул содержимое страницы curl'ом, скачалось нормально

curl 'https://like.doctor/russia/vrachi/stomatolog'

Возможно, в момент, когда Вы пробовали, на хосте были проблемы, которые сейчас решены. Как Вы видите, я качал вообще без заголовком и кук. Хотя Вы отправляете данные методом POST, а не забираете GET'ом. Я полазил по исходнику страницы и похожего запроса именно POST не нашел. Недостаточно данных для того, чтобы делать какие-то конкретые выводы, кроме одного: этот запрос не совсем корректно обрабатывается сервером. Могу только порекомендовать перепроверить параметры запроса.

→ Ссылка