使用PHP和cURL,我想检查是否可以使用提供的用户凭据登录网站。为此我正在检索整个网站,然后使用正则表达式来过滤可能表明登录不起作用的关键字。
如果输入了错误的用户名/密码,则url本身包含字符串“errormessage”。是否可以仅使用curl来获取url地址,而没有内容加速它?
这是我的curl PHP代码:
function curl_get_request($referer, $submit_url, $ch)
{
global $cookie_path;
// sends a request via curl to the string specifics listed
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
curl_setopt($ch, CURLOPT_URL, $submit_url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_path);
return $result = curl_exec ($ch);
}
另外,如果有人对如何处理这样的问题有更好的了解,请告诉我!
答案 0 :(得分:0)
每次有重定向时,您应该检查网址。大多数重定向将使用正确的HTTP标头完成。如果是这种情况,请参阅以下答案:
PHP: cURL and keep track of all redirections
基本上,请关闭自动重定向,然后检查301
或302
的HTTP状态代码。如果你得到其中一个,你可以继续按照重定向,或从那里退出。
如果相反,重定向发生在客户端,则必须使用DOM解析器解析页面。