Задать вопрос
kursorik2
@kursorik2
Junior-Developer

Не получается спарсить страницу HTML на PHP с помощью Curl?

Доброго времени суток. Вот решил написать API для одного сайта, и администрация дала согласие и предоставила страницы с описанием в виде текстовых страниц HTML,всё бы отлично вот только при получении вместо описания я вижу этот код:
<html><head></head> 
	<body>
		<script> 
			var xmlhttp = new XMLHttpRequest(); 
			function eraseCookieFromAllPaths(name) { var pathBits = location.pathname.split("/");var pathCurrent = " path=";document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT;";for (var i = 0; i < pathBits.length; i++) {pathCurrent += ((pathCurrent.substr(-1) != "/") ? "/" : "") + pathBits[i]; 
			document.cookie = name + "=; expires=Thu, 01-Jan-1970 00:00:01 GMT;" + pathCurrent + ";";}} 
			eraseCookieFromAllPaths("BHC"); 
			xmlhttp.onreadystatechange=function() { 
                            if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
                                var a=xmlhttp.responseText.trim();document.cookie="BHC="+a+"; path=/";document.location.href="/"; } }; 
			xmlhttp.open("GET", "/banhammer/pid", true);xmlhttp.send(); 
		</script> 
	</body></html>

Как сказал администратор это из-за их хостинга, который без предупреждений поставил такую защиту от Ddos всем своим сайтам.
Ддосить никого я не собирался да и не умею, а вот получить страницу через апи просто необходимо...
  • Вопрос задан
  • 515 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
alsopub
@alsopub
Вам нужно получить значение по ссылке /banhammer/pid и добавлять Cookie BHC=<это_значение> при запросах к сайту.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Отвечу немного краем: лучше использовать parser-прослойку, обрабатывающую JS и вызывать его из PHP.
Например, тот же phantom.js/casper.js/nightmare.js
https://github.com/segmentio/nightmare
Отладка запросов и ответов: Fiddler
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы