Авторизуйтесь с помощью curl и синтаксического анализа, используя простой HTML-дом, не работающий

Я пытаюсь прочитать html-страницу, используя простой html-дом, для которого требуется авторизация для входа.

например: http://example.com/login/ - это страница входа, а http://example.com/page/ - это место, где я должен проанализировать HTML.

Поэтому я использовал curl для входа в систему и простой html-файл для анализа.

Но я не знаю, входит ли моя страница в систему или нет, потому что, когда я показываю ответ от 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 Найдено
Дата: среда, 28 января 2015 г., 06:59:44 GMT
Сервер: Apache
X-Powered-By: PHP / 5.3.3
Cache-Control: no- кеш
Расположение: / войти
Кодировка передачи: фрагментирована
Тип содержимого: текст / html; charset = UTF-8

HTTP / 1.1 200 OK
Дата: среда, 28 января 2015 г., 06:59:45 GMT
Сервер: Apache
X-Powered-By: PHP / 5.3 .3
Cache-Control: без кеша
Кодировка передачи: по фрагментам
Content-Type: text / html; charset = UTF-8

за которым следует html-содержимое страницы входа.

Кто-нибудь может посоветовать мне, что я делаю не так.

Я запускаю это на своем локальном хосте с местом назначения, размещенным на сервере.

И я не заметил никаких изменений в файле cookies.txt.

Большое спасибо.


person vijay anand    schedule 28.01.2015    source источник
comment
Попробуйте установить путь к cookies.txt как абсолютный путь, например /var/www/app/cookies.txt, а затем установите соответствующее разрешение для cookies.txt. Если вход прошел успешно, вы можете увидеть текст в cookies.txt.   -  person Pramod Sivadas    schedule 28.01.2015
comment
Я попытался запустить загрузку на сервер, но с файлами cookie все еще не произошло никаких изменений. p.s: следовал полному пути, указанному в файле cookies.txt.   -  person vijay anand    schedule 29.01.2015


Ответы (1)


Мне это кажется нормальным результатом. Если вам не нужны заголовки, не устанавливайте CURLOPT_HEADER

person pguardiario    schedule 28.01.2015
comment
ну, если он входит в систему, он должен возвращать содержимое example.com/page, а не exmple.com/login содержимое. - person vijay anand; 29.01.2015
comment
Похоже, вам нужно поработать над своим вопросом. Сначала выясните, о чем вы пытаетесь спросить, и убедитесь, что где-то в этом есть знак (?). - person pguardiario; 29.01.2015
comment
прочтите второе и третье предложения, если он успешно войдет в систему, он должен вернуть содержимое example.com/page, а не Содержание страницы example.com/login. - person vijay anand; 29.01.2015
comment
Это не вопрос. Контрольный признак - отсутствие ?. И нет, такие вещи, как «что я делаю не так?» не в счет. Задайте хороший вопрос, и вы получите ответ. - person pguardiario; 29.01.2015
comment
Ваш комментарий выглядит глупо, я сказал, что хочу (это мое требование), что я сделал и что получаю. Также я сказал, что не знаю, входит ли скрипт в систему или нет, проверяя cookies.txt или из вывода. Если ты не хочешь помочь, это нормально. Я не знаю, как я могу сформулировать свой вопрос дальше - person vijay anand; 29.01.2015
comment
Хорошо, видите, я пытаюсь привести результаты своего онлайн-интервью, в котором я застрял. Bcoz, только если скрипт успешно войдет в систему, я могу прочитать следующую страницу. но теперь я думаю, что он не входит в систему успешно. Если кто-нибудь может написать мне в личку, я могу дать вам более подробную информацию и показать реальную страницу, откуда мне нужно получить доступ. - person vijay anand; 29.01.2015
comment
Это все еще не вопрос. Пожалуйста, прочтите руководство для получения дополнительных разъяснений. - person pguardiario; 29.01.2015