我想获取受保护页面的HTML代码.我的目标是用css重新设置这个页面,所以我需要先获取html代码!
我有一个有效的用户名和密码.
我曾尝试使用cURL,但我总是得到这条消息:"存根收到了错误的数据"
页面的网址是:http://student.guc.edu.eg
你有代码吗?你需要使用这样的代码,特别是利用CURLOPT_HTTPAUTH
它CURLOPT_USERPWD
.
$username = 'studentid';
$password = 'studentpassword';
$ch = curl_init("http://student.guc.edu.eg/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
$html = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
CURLOPT_HTTPAUTH
要使用的HTTP身份验证方法.选项包括:CURLAUTH_BASIC,CURLAUTH_DIGEST,CURLAUTH_GSSNEGOTIATE,CURLAUTH_NTLM,CURLAUTH_ANY和CURLAUTH_ANYSAFE.
按位| (或)运算符可用于组合多个方法.如果这样做,cURL将轮询服务器以查看它支持的方法并选择最佳方法.
CURLAUTH_ANY是CURLAUTH_BASIC |的别名 CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
CURLAUTH_ANYSAFE是CURLAUTH_DIGEST |的别名 CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.
CURLOPT_USERPWD
格式为"[用户名]:[密码]"的用户名和密码,用于连接.
查看网站http://student.guc.edu.eg/返回的标题,如下所示:
> curl -I http://student.guc.edu.eg/
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Thu, 21 Jul 2011 08:18:34 GMT
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="student.guc.edu.eg"
Connection: close
Content-Length: 4431
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
这意味着CURLAUTH_BASIC
你应该尝试CURLAUTH_NTLM
,而不是使用,看看是否有帮助.