Как получить конечный HTML страницы средствами CURL?
Не получается получить конечный HTML страницы. Пробовал инициировать запрос со всевозможными заголовками, но возвращается (как мне кажется) страница начальной загрузки, JavaScript которой подгрузит главное содержимое.
Средствами CURL - никак, CURL не исполняет javascript.
Ответ на вопрос как исполнить javascript при парсинге очень легко найти в поисковике даже по Тостеру, не говоря уже про весь остально интернет.
Юзнул https://github.com/chrome-php/chrome; при простом взятии html ($page->getHtml(10000);) сайт отдавал тот же HTML, который в случае с CURL. Получилось с перезагрузкой страницы перед извлечением html:
$page->evaluate('window.location.reload();')->waitForPageReload();.
Пипец.
polak228, средства курл никак js исполнять не могут. вот вообще никак.
Но чисто теоретически, вы на php можете написать интепретатор js. То есть курлом дергаете - и код исполняете.
Мне нужны именно характеристики, но откуда они подгружаются я не нашел, видимо сразу рендерятся на страницу. Решил с помощью https://github.com/chrome-php/chrome
После того как безголовый браузер открыл страницу, нужно выполнить JS который перезагрузит ее еще раз: $page->evaluate('window.location.reload();')->waitForPageReload(); и только после этого сайт отдаст HTML с нужными данными.