Не получается спарсить контент

Рейтинг: 0Ответов: 0Опубликовано: 23.01.2023

Вообще есть массив урлов и нужно получить контент страницы, но здесь для примера я использовал только урл одной страницы. Когда по этому урлу заходишь с браузера контент есть, но когда curl отправляет запрос на странице нет контента, phpQuery не находит те элементы которые нужны. В чем может быть проблема?

require_once 'vendor/autoload.php';

$cookiefile = $_SERVER['DOCUMENT_ROOT'] . "/tmp/cookie.txt";

$headers = array(
    'cache-control: max-age=0',
    'upgrade-insecure-requests: 1',
    'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 YaBrowser/22.11.5.715 Yowser/2.5 Safari/537.36',
    'sec-fetch-user: ?1',
    'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'x-compress: null',
    'sec-fetch-site: none',
    'sec-fetch-mode: navigate',
    'accept-encoding: deflate, br',
    'accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
);

$ch = curl_init('https://helix.ru/catalog/item/02-014');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$html = curl_exec($ch);
curl_close($ch);

$cookie = file_get_contents('tmp/cookie.txt');

phpQuery::newDocument($html);

$analyzes = pq('.pageheader-title');

file_put_contents('content.html', $analyzes); //сохраняет пустой файл так как элемента с классом .pageheader-title нет. Можно сохранить всю страницу и будет видно что контента нет.

phpQuery::unloadDocuments();
?>

Ответы

Ответов пока нет.