Не могу CURL'ом получить содержимое страницы с сайта kaspi.kz Пример кода:
$url = 'https://kaspi.kz/shop/p/apple-iphone-11-128gb-chernyi-1005116/?at=1&c=750000000';
$ch = curl_init($url);
$headers = array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Accept-Encoding: gzip, deflate',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1'
);
$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEFILE, '/backend/web/cook');
curl_setopt($ch, CURLOPT_COOKIEJAR, '/backend/web/cook');
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_REFERER, 'https://kaspi.kz');
$content = curl_exec($ch);
curl_close($ch);
В ответ получаю вот такой код:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
@keyframes animate{0%{transform:rotate(180deg)}
to{transform:rotate(540deg)}
}
html{color:#4a4a4a;background:#f0f0f0;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-family:sans-serif}
body{min-width:100vw;font-family:"Roboto",Helvetica,Arial,sans-serif}
.spinner{border-radius:100%;background:#fff;position:absolute;left:0;top:0;bottom:0;right:0;margin:auto}
.spinner__shadow{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);z-index:999;display:flex}
.spinner:after,.spinner:before,.spinner_inner:after,.spinner_inner:before{position:absolute;display:block;content:"";border-left-color:#fff!important;transform:rotate(180deg);animation:animate 1.8s ease infinite}
.spinner{box-shadow:0 0 0 15px #fff;width:140px;height:140px;border:3px solid #f14635}
.spinner:after,.spinner:before{border-radius:74px 0 0 74px;transform-origin:74px 74px;top:-5px;left:-5px;border-top:74px solid transparent;border-left:74px solid gray;border-bottom:74px solid transparent}
.spinner:before{animation-delay:-.6s}
.spinner:after{animation-delay:-.4s}
.spinner_inner{display:none}
*,:after,:before{box-sizing:border-box;-webkit-tap-highlight-color:transparent;outline:0}
</style>
</head>
<body>
<div class="spinner__shadow"><div class="spinner _small"><div class="spinner_inner"></div></div></div>
<script type="text/javascript"src="/yml/aes.min.js"></script>
<script>
var LINK = "http://kaspi.kz/shop/p/apple-iphone-11-128gb-chernyi-1005116/?at=2&c=750000000".replace(new RegExp("^http://", "i"), "https://");
var urlParams = window.URLSearchParams && new URLSearchParams(window.location.search) || {};
var at = urlParams.get("at") || 0; at = parseInt(at, 10);
function toNumbers(d) { var e = []; d.replace(/(..)/g, function (d) { e.push(parseInt(d, 16)) } ); return e;}
function toHex() {for (var d = [], d = 1 == arguments.length && arguments[0].constructor == Array ? arguments[0] : arguments, e = "", f = 0; f < d.length; f++)e += (16 > d[f] ? "0" : "") + d[f].toString(16); return e.toLowerCase();}
function entrance() {
var form = document.createElement("form");
form.action = "https://kaspi.kz/entrance";
var content = "<input type=\"hidden\" name=\"action\" value=\"login\"/><input type=\"hidden\" name=\"returnUrl\" value=\""+LINK+"\"/>";
form.insertAdjacentHTML("afterbegin", content);
document.body.appendChild(form);
form.submit();
}
var a = toNumbers("241da8ee35e750786163840090d7103e"), b = toNumbers("7a017212b141d0a61faadb62d3fec212"), c = toNumbers("a72661f848c241bcdd2a47088fffe662");
window.goToURL = function(ticketTGT) {
if (ticketTGT) document.cookie = "ticket=" + ticketTGT + "; path=/";
document.location.href = LINK;
}
if (at && at > 1) {
window.mobapp ? window.mobapp.authorize("goToURL") : entrance();
} else {
document.cookie = "ks.tck=" + toHex(slowAES.decrypt(c, 2, a, b)) + "; max-age=3600; path=/shop";
goToURL();
}
</script>
</body>
</html>
А что вы хотели получить? содержимое страницы? так вы получили, с curl
все хорошо. Если посмотрите на скрипт, то можете увидеть, функцию
window.goToURL = function(ticketTGT) {
if (ticketTGT) document.cookie = "ticket=" + ticketTGT + "; path=/";
document.location.href = LINK;
}
которая воспроизводит редирект на страницу с контентом который вы скорее всего хотели бы получить
В один момент сломался вывод русского теста в консольИ внутри IDE (встроенных терминалах) и в cmd консоли я так и не понял что произошло
Пытаюсь сделать масштабирование pictureboxЧестно говоря, в c# я очень слаб
После обработки одной из таблиц DGVW1 данные (например) перетекают в DGVW3 и в момент, когда это происходит в ячейку записывается время (код прилагается)Нужно...