Я использовал, чтобы получить некоторую информацию на веб-сайте, используя curl для входа и отображения информации, но теперь на веб-сайте используется cloudflare. Проблема в том, что я не могу выполнить перенаправление, потому что на сайте используется javascript.PHP Curl wrong redirect
Я думаю, что это может быть довольно просто решить, потому что я использую PHP локон на локальном хосте, и через 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>
Вы никогда не будете получать cURL, чтобы следить за переадресацией javascript в любом из мода. Вам нужно будет проанализировать документ для javascript и попытаться получить оттуда (если возможно), куда будет отправлен перенаправление. –