0

我想获取页面的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); 这显示与上面相同 + 一个错误:请求实体太大

4

1 回答 1

2

该页面不使用 HTTP 基本身份验证。

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

于 2012-06-21T13:22:48.303 回答