使用curl进行授权并使用简单的html dom解析不起作用

时间:2015-01-28 07:24:14

标签: php curl simple-html-dom

我正在尝试使用简单的html dom读取html页面,需要登录授权。

例如:http://example.com/login/是登录页面,http://example.com/page/是我应该解析html的地方。

所以我用curl做登录和简单的html dom来解析。

但是我不知道我的页面是否登录,因为当我从curl显示响应时它的登录页面内容!!

我在几乎所有相关问题中搜索堆栈了好几个小时,但我找不到出错的地方。

下面是我的代码

<?php
$curlPost['username']="username";
$curlPost['password']="pass";
$curlPost['token']="xxxxxxxxxx";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , "http://example.com/login/");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
$response= curl_exec ($ch);
curl_close($ch);

检索html页面的代码

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , "http://example.com/page/");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
$reponse= curl_exec ($ch);
curl_close($ch);

echo $response;
?>

以下是我在页面顶部的回复:

  

发现HTTP / 1.1 302   日期:2015年1月28日星期三06:59:44 GMT
  服务器:Apache
  X-Powered-By:PHP / 5.3.3
  缓存控制:无缓存
  位置:/ login
  转移编码:分块
  内容类型:text / html;字符集= UTF-8
  
  HTTP / 1.1 200 OK
  日期:2015年1月28日星期三06:59:45 GMT
  服务器:Apache
  X-Powered-By:PHP / 5.3.3
  缓存控制:无缓存
  转移编码:分块
  内容类型:text / html;字符集= UTF-8

后面是登录页面的html内容。

任何人都可以告诉我我做错了什么。

我在我的localhost中运行它,目标托管在服务器中。

我没有看到“cookies.txt”文件发生任何变化。

非常感谢。

1 个答案:

答案 0 :(得分:0)

这看起来像我的正常输出。如果您不想要标题,请不要设置CURLOPT_HEADER