Раньше я получал некоторую информацию на веб-сайте, использовал curl для входа и показа информации, но теперь веб-сайт использует cloudflare. Проблема в том, что я не могу следить за редиректом, потому что на сайте используется javascript.
Я думаю, что это может быть довольно просто решить, потому что я использую php curl на локальном хосте, и через 5 секунд появляется сообщение «Проверка вашего браузера перед доступом к примеру.«перенаправляет меня на: www.localhost / LINKOFTHEREDIRECT вместо того, чтобы идти в www.example.com/LINKOFTHEREDIRECT и показывает мне правильную веб-страницу.
Вот мой код:
<?php
$url0 = "http://example.com/login.php";
$url = "http://example.com/pageIwant.php";
$user_agent='Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0';
$options = array(
CURLOPT_USERAGENT => $user_agent, //set user agent
CURLOPT_COOKIESESSION => true, // enable cookies
CURLOPT_COOKIEFILE =>"C:/Program Files/XAMPP/htdocs/cp/cookies.txt", //set cookie file
CURLOPT_COOKIEJAR =>"C:/Program Files/XAMPP/htdocs/cp/cookies.txt", //set cookie jar
CURLOPT_CUSTOMREQUEST =>"GET", //set request type post or get
CURLOPT_POST =>false, //set to GET
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 20, // timeout on connect
CURLOPT_TIMEOUT => 20, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch0 = curl_init( $url0 );
curl_setopt_array( $ch0, $options );
$content0 = curl_exec( $ch0 );
curl_close( $ch0 );
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
echo $content; ?>
А вот и JavaScript:
<script type="text/javascript">
//<![CDATA[
(function() {
var a = function() {
try {
return !!window.addEventListener
} catch (e) {
return !1
}
},
b = function(b, c) {
a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)
};
b(function() {
var a = document.getElementById('cf-content');
a.style.display = 'block';
setTimeout(function() {
var t, r, a, f, YvDgwfU = {
"uxTkX": +((+!![] + []) + (!+[] + !![]))
};
t = document.createElement('div');
t.innerHTML = "<a href='/'>x</a>";
t = t.firstChild.href;
r = t.match(/https?:\/\//)[0];
t = t.substr(r.length);
t = t.substr(0, t.length - 1);
a = document.getElementById('jschl-answer');
f = document.getElementById('challenge-form');;
YvDgwfU.uxTkX *= +((!+[] + !![] + !![] + !![] + []) + (!+[] + !![] + !![] + !![]));
YvDgwfU.uxTkX -= +((+!![] + []) + (!+[] + !![] + !![] + !![] + !![] + !![] + !![]));
YvDgwfU.uxTkX -= +((!+[] + !![] + !![] + !![] + !![] + []) + (+[]));
a.value = parseInt(YvDgwfU.uxTkX, 10) + t.length;
f.submit();
}, 5850);
}, false);
})();
//]]>
</script>
«message» Проверка вашего браузера перед доступом к примеру. «Перенаправляет меня на»
Все, что вы делаете, вызывает правило DDoS на сайте, и / или владелец сайта решил включить эту функцию.
Если веб-сайт в порядке, когда вы делаете то, что делаете, вам следует попросить владельца сайта внести в белый список IP-адреса, с которых вы это делаете.
Других решений пока нет …