Как cURL загрузить HTML код страницы без загрузки контента

Проблема следующая: Парсинг сайта работает по этой функции:

function get_page($url){
$headers = array(
'cache-control: max-age=0',
'upgrade-insecure-requests: 1',
'user-agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 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($url);
curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate,sdch');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}

На странице донора идет автозапуск плеера (auto play), видать из-за этого, парсер грузит куски кода по 1-2кб и страница постоянно перезагружается.

Вот так выглядит страница с выводом результатов

HTTP/1.1 200 OK
cache-control: no-cache
content-type: text/html
content-length: 1452



Loading...

content-length постоянно меняется и страница перезагружается.

Сделал вместо вывода - file_put_contents и вот что получил

HTTP/1.1 200 OK
cache-control: no-cache
content-type: text/html
content-length: 1502

<html><head><script type="text/javascript"><!--
function leastFactor(n) {
 if (isNaN(n) || !isFinite(n)) return NaN;
 if (typeof phantom !== 'undefined') return 'phantom';
 if (typeof module !== 'undefined' && module.exports) return 'node';
 if (n==0) return 0;
 if (n%1 || n*n<2) return 1;
 if (n%2==0) return 2;
 if (n%3==0) return 3;
 if (n%5==0) return 5;
 var m=Math.sqrt(n);
 for (var i=7;i<=m;i+=30) {
  if (n%i==0)      return i;
  if (n%(i+4)==0)  return i+4;
  if (n%(i+6)==0)  return i+6;
  if (n%(i+10)==0) return i+10;
  if (n%(i+12)==0) return i+12;
  if (n%(i+16)==0) return i+16;
  if (n%(i+22)==0) return i+22;
  if (n%(i+24)==0) return i+24;
 }
 return n;
}
function go() {
 var p=2120416958467; var s=2204585573; var n;
if ((s >> 1) & 1)/*
*13;
*/p+=/*
p+= */383508489*/*
*13;
*/2;/*
p+= */else /*
p+= */p-=/*
p+= */972850836*2;
if ((s >> 13) & 1)/*
*13;
*/p+= 97613450*/*
p+= */14;/*
*13;
*/else  p-=/*
*13;
*/90472132*/*
*13;
*/14;
if ((s >> 4) & 1)/*
*13;
*/p+=/* 120886108*
*/300165622*    7;/*
else p-=
*/else /*
else p-=
*/p-=/*
*13;
*/40209294* 5;/*
else p-=
*/if ((s >> 6) & 1)p+= 65598110*/*
p+= */9; else /*
*13;
*/p-=/*
*13;
*/44084206* 7; if ((s >> 10) & 1)/* 120886108*
*/p+=107646109*/*
else p-=
*/13;/* 120886108*
*/else /* 120886108*
*/p-= 30881843*11;/*
*13;
*/ p-=636450371;
 n=leastFactor(p);
{ document.cookie="KEY="+n+"*"+p/n+":"+s+":2670758685:1;path=/;";
  document.location.reload(true); }
}
//--></script></head>
<body onload="go()">
Loading...
</body>
</html>

Как я понимаю, это скрипт пустышка, типа защиты от парсинга. Но если использовать file_get_html() из библиотеки simple html dom то нормально отрабатывает.

Подскажите, как это сделать именно cURL-ом?


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