Я пытаюсь почистить портал моего университета, получить расписание и преобразовать его в более удобный для меня формат.
У меня есть следующий скрипт, который выполняет все, что ему нужно, он отправляетнесколько полей POST вместе со списком COOKIES, которые я заметил, когда просматривал заголовок http страницы, которую я пытаюсь очистить.
Но я что-то упускаю, потому что на самом деле ничего не происходит.CURL выводит форму входа, а не страницу входа, так что почему-то они знают, что это не браузер.Могу ли я попробовать что-нибудь еще?Это веб-сайт, который я пытаюсь обернуть: http://bit.ly/qPw7GI Я понял от некоторых других пользователей SO, что он не работает, поэтому доступ к определенным людям / регионам может быть заблокирован ...
Так что здесьэто код:
<?php
$ch = curl_init();
$cookies = array(
"cookieTest" => array("1",false),
"footerState" => array("Opened",false),
"AgendaItemQuery" => array("awful long text",false),
"NewsItemQuery" => array("awful long text",false),
"__utmz" => array("54297527.1317285611.5.4",false),
"__utmc" => array("54297527",false),
"__utma" => array("54297527.718718666.1317031434.1317157254.1317285611.5",false),
"groupRedirect" => array("Prestudent",false),
"WSS_KeepSessionAuthenticated" => array("{4d251e6e-2e82-4e61-bbd4-b10d12fc0015}",false),
"ASP.NET_SessionId" => array("4uyncl55mqyvvi55ab0rw345",true),
"lcid" => array("1033",false),
"ISAWPLB{13EA2B4B-9F2F-431A-A10D-C391C5A474A4}" => array("{4CD6D24F-EB82-4B2F-B2A2-6C3E24372FED}",true),
"lcidFromProfile" => array("1033",false),
"loginName" => array("i:0#.w|vu\username",false)
);
$jar = "";
foreach($cookies as $cookie => $value){
$c = explode("=", $cookie);
$ckey = $c[0];
if($d = explode(";", $value[0])){
$cval = $value[0];
} else {
$cval = $value[0];
}
$cval = trim(preg_replace('/\s+/', '', $cval));
$cval = urlencode($cval);
$jar .= $ckey."=".$cval."; ";
}
curl_setopt($ch, CURLOPT_URL, "https://website/CookieAuth.dll?GetLogon?curl=Z2F&reason=0&formdir=9");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $jar);
//curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, true);
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
$data = array(
'username' => 'username',
'password' => '********',
'curl' => 'Z2FPagesZ2Fschedule.aspx',
'flags' => '0',
'forcedownlevel' => '0',
'formdir' => '9',
'trusted' => '0',
'SubmitCreds' => 'Log On'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$output = curl_exec($ch);
print_r($output);
?>