Jeg har for tiden et lite prosjekt gående, å klare å hente ut timeplaner fra en side ved universitetet.
Jeg må da først inn på http://timeplan.uia.no/swsuiakrv/public/no/default.aspx for å få eventvalidation, sessionid og viewstate.
Lenkene på siden går til et javascript, som er vanskelig å gjøre noe med. Jeg har derfor prøvd å replikere POST dataen som blir sendt idet jeg trykker på Emne lenken uten hell.
Jeg må først inn på hovedsiden, 'trykke' på emne, sende inn skjema med fagkode.
Her sender jeg bare første forespørselen til siden og lagrer cookien jeg får derrifra.
Her sender jeg med EVENTVALIDATION og VIEWSTATE som jeg fikk fra den andre siden, slik at jeg i prinsippet skal få opp emne view'et.
MEN, jeg har prøvd nesten alt fra a til å som jeg kan komme på nå, og jævelen vil ikke gi seg.
Noen som har tips?
Jeg må da først inn på http://timeplan.uia.no/swsuiakrv/public/no/default.aspx for å få eventvalidation, sessionid og viewstate.
Lenkene på siden går til et javascript, som er vanskelig å gjøre noe med. Jeg har derfor prøvd å replikere POST dataen som blir sendt idet jeg trykker på Emne lenken uten hell.
Jeg må først inn på hovedsiden, 'trykke' på emne, sende inn skjema med fagkode.
Kode
<?php // create a new cURL resource $url = "http://timeplan.uia.no/swsuiakrv/public/no/default.aspx"; $ch = curl_init(); $data = array( "__EVENTTARGET" => "LinkBtn_modules", "__EVENTARGUMENT" => ""); $header = array( "MIME-Version: 1.0", "Content-type: text/html; charset=utf-8", "Content-transfer-encoding: text" ); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_COOKIEJAR, "./cookie.txt"); // ob_start(); // Prevent output curl_exec($ch); // ob_end_clean(); // End preventing output curl_close($ch); ?>
Kode
<?php include("parsing.php"); $parse = new Parse(); $url = "http://timeplan.uia.no/swsuiakrv/public/no/default.aspx"; $ch = curl_init(); $viewStateMain = $parse->viewStateMain(); $eventValidationMain = $parse->eventValidationMain(); $tLinkType = "studentsets"; $tWildcard = ""; $lbWeeks = "1;2;3;4;5;6;7;8;9;10;11;12;14;15;16;17;18"; $lbDays = "1-6"; // $viewStateMain = urlencode($viewStateMain); // $eventValidationMain = urlencode($eventValidationMain); // $lbWeeks = urlencode($lbWeeks); $postString = "__EVENTTARGET=LinkBtn_modules&__EVENTARGUMENT=&__VIEWSTATE=$viewStateMain&__EVENTVALIDATION=$eventValidationMain&tLinkType=modules&tWildcard=&lbWeeks=$lbWeeks&lbDays=1-6"; $postfields = array( "__EVENTTARGET" => "LinkBtn_modules", "__EVENTARGUMENT" => "", "__VIEWSTATE" => "$viewStateMain", "__EVENTVALIDATION" => "$eventValidationMain", "tLinkType" => "modules", "tWildcard" => "", "lbWeeks" => "$lbWeeks", "lbDays" => "1-6" ); $header = array( "MIME-Version: 1.0", "Content-type: text/html; charset=utf-8", "Content-transfer-encoding: text" ); // set URL and other appropriate options curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; nb-NO; rv:1.9.2) Gecko/20100115 Firefox/3.6"); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // ob_start(); // Prevent output curl_exec($ch); // ob_end_clean(); // End preventing output curl_close($ch); ?>
MEN, jeg har prøvd nesten alt fra a til å som jeg kan komme på nå, og jævelen vil ikke gi seg.
Noen som har tips?