PHPSESSID和cURL
我想从这个网站上得到一个游戏列表 Hooaeg:2012/2013->G4S KML->Ajakava/tulemused->põhiturniir 可以通过输入此URL访问页面,但是需要先获取PHPSESSID cookie。PHPSESSID和cURL,curl,web-scraping,php,Curl,Web Scraping,Php,我想从这个网站上得到一个游戏列表 Hooaeg:2012/2013->G4S KML->Ajakava/tulemused->põhiturniir 可以通过输入此URL访问页面,但是需要先获取PHPSESSID cookie。 我不能这样做。您知道如何获取此cookie吗?您还可以使用curl存储cookie数据(和会话内容)。基本上,你先访问主站点,然后转到子URL。示例代码: $mainurl = "http://www.basket.ee/" $ripurl = "http://www.
我不能这样做。您知道如何获取此cookie吗?您还可以使用curl存储cookie数据(和会话内容)。基本上,你先访问主站点,然后转到子URL。示例代码:
$mainurl = "http://www.basket.ee/"
$ripurl = "http://www.basket.ee/index.php?mid=469&round=1&sid=2013&chid=001&tase=1"
//Put cookie file
$cookieFile = "cookie.txt";
//if file doesn't exist
if(!file_exists($cookieFile)) {
//fopen for writing
$fh = fopen($cookieFile, "w");
//write
fwrite($fh, "");
//close
fclose($fh);
}
//Start session for first login
$ch = curl_init();
//Load curl
curl_setopt($ch, CURLOPT_URL, $mainurl);
//Set cookie file
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
//do not return data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute curl and close
curl_exec($ch);
curl_close ($ch);
//startup curl again
$ch = curl_init($urlxml);
//cookie stuff
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
//store curl result in var
$rawdata=curl_exec($ch);
//Close curl
curl_close ($ch);
echo $rawdata;
使用此选项,您可以将会话存储到cookie变量中,这会让用户相信您是正常的浏览用户。您可以在终端上尝试
curl -v http://www.basket.ee/
或者,您可以尝试查看是否可以在Chrome的
Inspect Element
选项的Network
中显示的一个文件中获取信息。有一个名为“篡改数据”的firefox插件,使用它查找会话和cookie,然后使用CURL访问页面并保持会话活动。没错,但我应该能够在使用CURLOPT_HEADER=>1选项时看到该变量,对吗?不幸的是,它似乎没有什么用处。你可以读取cookie变量。我可以问你为什么需要会话id吗?当然,我尝试过你发布的这样一个代码,但由于缺少会话id,它不起作用。你可以尝试打开浏览器,转到主页,然后粘贴上面提到的URL。只有在设置了一些其他Cookie/POST变量(例如CURLOPT_POSTFIELDS=>'periodSelector=2013')时,它才会起作用,但这不是重点。最重要的是会话ID