Hi guys -
I’ve been working on a recreational app that will allow me to log into Pinnacle Sportsbook and download the English Premier League odds. I’d use the publicly available feed but it doesn’t contain all their lines, so I’m resorting to scraping.
Basically I’ve got a problem after I log in and try to access a page. To be honest I’m not sure exactly where this is falling over. I think maybe I’m losing my login credential somewhere along the line.
The output I’m getting to my browser is:
Object Moved
This object may be found here.
Here is my php file I’m using to connect (with username and password obscured)
function curl_login($url,$data,$proxy,$proxystatus){
$fp = fopen("cookie.txt", "w");
fclose($fp);
$login = curl_init();
curl_setopt($login, CURLOPT_POSTFIELDS, $data);
curl_setopt($login, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($login, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($login, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6");
curl_setopt($login, CURLOPT_TIMEOUT, 40);
curl_setopt($login, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($login, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($login, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($login, CURLOPT_PROXY, $proxy);
}
curl_setopt($login, CURLOPT_URL, $url);
curl_setopt($login, CURLOPT_HEADER, TRUE);
curl_setopt($login, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($login, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($login, CURLOPT_POST, TRUE);
ob_start(); // prevent any output
return curl_exec ($login); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($login);
unset($login);
}
function curl_grab_page($site,$proxy,$proxystatus){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
if ($proxystatus == 'on') {
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_URL, $site);
ob_start(); // prevent any output
return curl_exec ($ch); // execute the curl command
ob_end_clean(); // stop preventing output
curl_close ($ch);
}
$loginurl = 'https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports';
$data = '__EVENTTARGET=ctl00%24LF%24LB&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwULLTE1MTczNzI3NjUPZBYCZg9kFgQCAQ9kFgQCBA8WAh4EVGV4dAVUDQo8bWV0YSBuYW1lPSJ2ZXJpZnktdjEiIGNvbnRlbnQ9InJvT3JjOUljZHlZVFgrVDZnWm1PN2VQejMwRWNLR2VXTkJqbmwzWnlaQUk9IiAvPg0KZAIKD2QWAmYPFgIfAAWJATxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BKi5pIHtiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2NvbnRlbnQucGlubmFjbGVzcG9ydHMuY29tL3VwbG9hZGVkSW1hZ2VzL0d1ZXN0U2VjdGlvbi9jb21iaW5lZDIzLnBuZyk7fTwvc3R5bGU%2BZAIDDxYEHgZvbmxvYWQFMmphdmFzY3JpcHQ6UDdfaW5pdFBNKDEsOCwwLC0yMCwyKTtQN19pbml0VFAoNCwgMCk7HghvbnVubG9hZAUWamF2YXNjcmlwdDpvblVubG9hZCgpOxYEAgEPZBYEAgMPZBYCAgEPZBYGZg8QZGQWAWZkAgEPEGRkFgECAWQCAg8QDxYCHgdWaXNpYmxlaGRkFgECAmQCBw9kFgQCBQ8WAh8DaGQCBw8WAh8DaGQCAw9kFgJmDxYEHgRNb2RlCyolU3lzdGVtLldlYi5VSS5XZWJDb250cm9scy5MaXRlcmFsTW9kZQEfAAWXFTwhLS0gU3RhcnQgb2YgSW50ZWxsaVRyYWNrZXIgUGFnZSBUYWcgLS0%2BDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI%2BPCEtLSANCnZhciBwcXJ5PSJMYW5ndWFnZUlEJTNEMCUyNm9kZHNGb3JtYXQlM0RkZWNpbWFsIjsNCnZhciBycXJ5PSJpUkVHUXJ5IjsNCnZhciBzcXJ5PSJpU2FsZSI7DQp2YXIgaXRyTUlkID0gODI1Ow0KdmFyIGl0clJxc3RIID0gInRyYWNrZXIucGlubmFjbGVzcG9ydHMuY29tIjsNCnZhciBkdD13aW5kb3cuZG9jdW1lbnQsbnI9bmF2aWdhdG9yLGluYT1uci5hcHBOYW1lLHNyPSIwJjAiLHB4PTAsc3Y9MTMsamU9MDsNCnZhcglpbmF2PW5yLmFwcFZlcnNpb24saWllPWluYXYuaW5kZXhPZignTVNJRSAnKSxpbnRwPShpbmEuaW5kZXhPZignTmV0c2NhcGUnKT49MCk7DQppZihpaWU%2BMClpbmF2aT1wYXJzZUludChpbmF2LnN1YnN0cmluZyhpaWUrNSkpO2Vsc2UgaW5hdmk9cGFyc2VGbG9hdChpbmF2KTsNCmZ1bmN0aW9uIGlycyhzLGYscil7dmFyIHA9cy5pbmRleE9mKGYpO3doaWxlKHA%2BPTApe3M9cy5zdWJzdHJpbmcoMCxwKStyK3Muc3Vic3RyaW5nKHArZi5sZW5ndGgscy5sZW5ndGgpO3A9cy5pbmRleE9mKGYpfXJldHVybiBzfQ0KZnVuY3Rpb24gY2VzYyhzKXtpZihzLmxlbmd0aD4wKSByZXR1cm4gaXJzKGlycyhpcnMoaXJzKGlycyhzLCcrJywnJTJCJyksJy4nLCclMkUnKSwnLycsJyUyRicpLCc9JywnJTNEJyksJyYnLCclMjYnKSA7IGVsc2UgcmV0dXJuIHM7fQ0KZnVuY3Rpb24gaWVzYyhzKXtyZXR1cm4gY2VzYyhlc2NhcGUocykpO30gDQpmdW5jdGlvbiBncHIoKXsNCnZhciBwcj0nJywgaXB3PXdpbmRvdywgaXByPSd3aW5kb3cnLCBpd0w9JycsIGlwTD0nJzsNCndoaWxlIChpcEw9PWl3TCl7DQppdz1pcHc7IHByPWl3LmRvY3VtZW50LnJlZmVycmVyOw0KaWYoaW50cCkgYnJlYWs7aWYoKCcnK2l3LnBhcmVudC5sb2NhdGlvbik9PScnKWJyZWFrOw0KaXdMPShpdy5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsnXC9cLycraXcuZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpLnRvTG93ZXJDYXNlKCk7DQppcEw9cHIuc3Vic3RyaW5nKDAsaXdMLmxlbmd0aCkudG9Mb3dlckNhc2UoKTsNCmlwcj1pcHIrJy5wYXJlbnQnOyBpcHc9ZXZhbChpcHIpOyBpZiAoaXc9PWlwdykgYnJlYWs7fXJldHVybiBwcjt9DQpmdW5jdGlvbiBpdHJjKCl7dmFyIG53PW5ldyBEYXRlKCksY2U9MixpdWw9Jyc7DQppZiAoZHQuY29va2llKSBjZT0xOw0KZWxzZSB7dmFyIGV4PW5ldyBEYXRlKG53LmdldFRpbWUoKSsxMDAwKTsgZHQuY29va2llPSJpdGM9MzsgRVhQSVJFUz0iK2V4LnRvR01UU3RyaW5nKCkrIjsgcGF0aD0vIjtpZiAoZHQuY29va2llKSBjZT0xO30JCQ0KaWYoaW5hdmk%2BPTQpIGl1bD1pZXNjKGlpZT4wJiZuci51c2VyTGFuZ3VhZ2U%2FbnIudXNlckxhbmd1YWdlOm5yLmxhbmd1YWdlKTsNCnZhciB1bj1NYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkqMjEwMDAwMDAwMCk7DQppbD1pc2wrdW4rIiYiK2llc2MoZ3ByKCkpKyIlMjAmIitjZXNjKHBxcnkpKyIlMjAmIitjZXNjKHJxcnkpKyIlMjAmIg0KK2Nlc2Moc3FyeSkrIiUyMCYiK2NlKyImIitzcisiJiIrcHgrIiYiK2plKyImIitzdisiJiIraXVsKyIlMjAmIitudy5nZXRUaW1lem9uZU9mZnNldCgpKyImIitpZXNjKGlkbCkrIiUyMCI7DQppZihpaWU%2BMCAmJiBpbC5sZW5ndGg%2BMjA0NSlpbD1pbC5zdWJzdHJpbmcoMCwyMDQ1KTsNCnZhciBpaW49J2l0cjgyNScsIGl3cmk9dHJ1ZTsNCmlmKGR0LmltYWdlcyl7aWYoIWR0LmltYWdlc1tpaW5dKWR0LndyaXRlKCc8ZGl2IHN0eWxlPSJkaXNwbGF5Om5vbmUiPjxpJysnbWcgbmFtZT0iJytpaW4rJyIgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSJJbnRlbGxpVHJhY2tlciIvPjwvZGl2PicpOw0KaWYoZHQuaW1hZ2VzW2lpbl0pe2R0LmltYWdlc1tpaW5dLnNyYz1pbCsnJjAnO2l3cmk9ZmFsc2U7fX0NCmlmKGl3cmkpZHQud3JpdGUoJzxpJysnbWcgc3InKydjPSInK2lsKycmMCIgaGVpZ2h0PSIxIiB3aWR0aD0iMSI%2BJyk7fQ0KdmFyIGlkbD13aW5kb3cubG9jYXRpb24uaHJlZjt2YXIgaXNsPSJodHRwIisoaWRsLmluZGV4T2YoJ2h0dHBzOicpPT0wPydzJzonJykrIjovL3RyYWNrZXIucGlubmFjbGVzcG9ydHMuY29tL2UvdDMuZGxsPzgyNSYiOw0KaXRyYygpOw0KLy8tLT48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tDQppZihpaWU%2BMClkdC53cml0ZSgiXDxcIVwtXC0iKTsNCi8vLS0%2BPC9zY3JpcHQ%2BDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3RyYWNrZXIucGlubmFjbGVzcG9ydHMuY29tL2UvY2xpY2tzLmpzIj48L3NjcmlwdD4NCjxub3NjcmlwdD4NCjxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZSI%2BPGltZyBzcmM9J2h0dHBzOi8vdHJhY2tlci5waW5uYWNsZXNwb3J0cy5jb20vZS90My5kbGw%2FODI1JmFtcDswJmFtcDslMjAmYW1wO0xhbmd1YWdlSUQlM0QwJTI2b2Rkc0Zvcm1hdCUzRGRlY2ltYWwmYW1wO2lSRUdRcnkmYW1wO2lTYWxlJmFtcDswJmFtcDswJmFtcDswJmFtcDswJmFtcDswJmFtcDswJmFtcDslMjAmYW1wOzE1MDAmYW1wOyUyMCZhbXA7MCcgaGVpZ2h0PSIxIiB3aWR0aD0iMSIgYWx0PSJJbnRlbGxpVHJhY2tlciIvPjwvZGl2Pg0KPC9ub3NjcmlwdD48IS0tLy8tLT4NCjwhLS0gRW5kIG9mIEludGVsbGlUcmFja2VyIFBhZ2UgVGFnIC0tPg0KZGQ%3D&__PREVIOUSPAGE=cC6v86rLgpzKauPW5R75VZ6MnouJHAk-4dX5bAgGIAb5u7LxzDThRsxab3Nvnz3jfDBRuieaF3sFEN_3HIHC-n835N01&ctl00%24LDDL=1&ctl00%24PSDDL=decimal&ctl00%24MCPH%24LF%24UserName=***&ctl00%24MCPH%24LF%24Password=***&ctl00%24MCPH%24LF%24LanguageID=0&ctl00%24MCPH%24LF%24PriceStyle=decimal&ctl00%24MCPH%24LF%24LinesTypeView=c&ctl00%24MCPH%24LF%24MemberServer=www39.pinnaclesports.com';
echo curl_login($loginurl,$data,'','off');
echo curl_grab_page('http://www39.pinnaclesports.com/Members/gameselection.asp?sportType=Soccer&sportSubType=Eng.+Premier&descr=1','','off');
Any help with this kind of this thing would be greatly appreciated.
Thanks.