PHP从需要身份验证的网页中读取

时间:2011-05-10 15:09:18

标签: php

我正在尝试获取需要使用PHP进行身份验证的网页内容 理想情况下,我想使用简单的html dom解析器:http://simplehtmldom.sourceforge.net 有人知道这样做的方法吗?

编辑:
试过以下代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=' . urlencode($username) . '&password=' . urlencode($pass));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
echo curl_exec($ch);
curl_close($ch);

但现在我收到405 HTTP错误。

1 个答案:

答案 0 :(得分:3)

我从未使用过该解析器,但他们的示例代码使得它似乎可以从文件或URL加载数据。我会使用php的curl函数,它可以轻松地访问具有多种类型身份验证的页面,将结果保存到文件中,然后使用该库来解析文件。

http://www.php.net/manual/en/book.curl.php

专门查看CURLOPT_HTTPAUTH选项。

希望这有帮助。

编辑:

我不得不抬头405;我从未见过一个。听起来您的ISP不允许POST请求,或者可能不允许它们没有SSL:

http://www.checkupdown.com/status/E405.html

我会和运行你的服务器的人谈谈405.你的代码对我来说很好。发布登录表单是否会返回您想要的页面,或者一旦您保存了会话信息,您是否必须再下载另一个页面?