登录后获取https的html

问题描述:

我希望获得页面的html。经过一些谷歌,我发现下面的代码,这是行不通的。登录后获取https的html

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, "$username:$passwd"); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
$output = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
echo $output; 

编辑:是这样的,那么:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, ''); 
curl_setopt($ch, CURLOPT_POSTFIELDS,'username='.urlencode($username).'&passwd='.urlencode($passwd)); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/my_cookies.txt"); 
curl_setopt($ch, CURLOPT_COOKIEFILE, "/tmp/my_cookies.txt"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3"); 
curl_setopt($ch, CURLOPT_REFERER, ""); 
$output = curl_exec($ch); 
    echo $output 

这只是显示在目标页面,它不登录,也没有返回的HTML代码。编辑2:现在尝试使用$ data = array('username'=> $ username,'passwd'=> $ passwd);和curl_setopt($ ch,CURLOPT_POSTFIELDS,$ data); 这显示了与上面相同的错误:请求实体太大

+2

这将是因为它不使用HTTP身份验证。 –

该页面不使用HTTP基本认证。

您需要创建一个HTTP请求以匹配提交表单将发送的内容,然后您需要处理响应(可能涉及存储Cookie)。

+0

非常感谢您的迅速回复,您能否提供某种示例代码片段或示例链接。我真的不知道该如何搜索atm。 – droelandt

+0

你将不得不自己做一些工作。 – ceejayoz