请耐心等待我,因为我对php curl及其错综复杂的全新。我已经在这里找到了一些提示,但仍然卡住了(好几天),所以希望有人能真正帮忙!
当我卷曲到此网址http://agentnet.propertyguru.com.sg/ex_login?w=1&redirect=/ex_home时,使用我的网络浏览器与curl查看它之间存在一个关键区别。即,当通过卷曲查看时,将出现验证码字段(连同错误消息)。通过浏览器查看时没有验证码或错误消息。我该怎么做才能使curl产生与浏览器相同的结果?
这是我的简单代码段。
$loginUrl = 'http://agentnet.propertyguru.com.sg/ex_login?w=1&redirect=/ex_home';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $loginUrl);
$cookie = realpath('cookie.txt'); // 'FSPrompt-6496=completed;' is stored in this file
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.0; rv:30.0) Gecko/20100101 Firefox/30.0');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$request_headers = array();
$request_headers[] = 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$request_headers[] = 'Accept-Language:en-US,en;q=0.5';
$request_headers[] = 'Connection: Keep-Alive';
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$msg = curl_exec($ch);
答案 0 :(得分:1)
此网站需要Cookie才能让您登录。</ p>
因此,您必须更新脚本才能正确保存Cookie。 Guzzle是构建http客户端的绝佳库。