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 шт):
Судя по коду $url = 'https://like.doctor/russia/vrachi/stomatolog'; и тому факту, что сообщение об ошибке обнаружено в загруженном HTML-контенте, проблема находится на сайте, чью страницу Вы загружаете. О чем, кстати, Вас просят любезно сообщить разработчики самого сайта: "На сервере произошла непредвиденная ошибка Пожалуйста, напишите нам на [email protected] и опишите как вы получили данную ошибку."
Рекомендую воспользоваться предложенной консультацией разработчиков сайта, чей контент Вы пытаетесь спарсить, и уточнить у них, по какой причине страница грузится с ошибкой. Ну, или как минимум зайти браузером на их сайт и сравнить контент, загруженный браузером, с контентом, загруженным парсером. Возможно, там что-то должен догрузить javascript, или из-за каких-то заголовков или параметров запроса часть контента не генерируется.
UPD.
Качнул содержимое страницы curl'ом, скачалось нормально
curl 'https://like.doctor/russia/vrachi/stomatolog'
Возможно, в момент, когда Вы пробовали, на хосте были проблемы, которые сейчас решены. Как Вы видите, я качал вообще без заголовком и кук. Хотя Вы отправляете данные методом POST, а не забираете GET'ом. Я полазил по исходнику страницы и похожего запроса именно POST не нашел. Недостаточно данных для того, чтобы делать какие-то конкретые выводы, кроме одного: этот запрос не совсем корректно обрабатывается сервером. Могу только порекомендовать перепроверить параметры запроса.