Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Получить данные со стороннего сайта

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: cURL POST GET
babib
Отправлено: 13 Июня, 2014 - 09:05:36
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




Добрый день. Возникла задачка вытащить со стороннего сайта некую информацию.
Пытался реализовать это при помощи cURL. И вот что получилось.

Было подмечено что сначала отправляется POST запрос на сервер с логином и паролем.
После перезагрузки страницы отправляется GET запрос с сохраненными куками. (рис. 1. op=home)

Мною были выявлены нужные поля для авторизации.
Был организован POST запрос на этот сайт с правильными логином и паролем.

привожу пример кода

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $url = 'http://freebitco.in';                                // URL сайта на котором будем авторизоваться
  3. $urlTo = 'http://freebitco.in';                               // URL на которой будем слать POST данные
  4. $login = 'blabla@mail.ru';                          // Ваш логин
  5. $pass = 'parol';                                     // Ваш пароль
  6. $post = 'op=login&btc_address=' . $login . '&password=' . $pass . '&recaptcha_challenge_field=';  // POST данные
  7.  
  8. $ch = curl_init();                              // Инициализируем сеанс CURL
  9. curl_setopt($ch, CURLOPT_URL, $url);            // Заходим на сайт
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
  11. $html = curl_exec($ch);                         // Имитируем заход на сайт
  12.  
  13. curl_setopt($ch, CURLOPT_URL, $urlTo);              // Устанавливаем адрес куда будем слать POST данные
  14. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать
  15. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
  16. //curl_setopt( $ch, CURLOPT_USERAGENT, "" );
  17. curl_setopt($ch, CURLOPT_POST, true);               // Говорим, что информация будет отправляться методом POST
  18. curl_setopt($ch, CURLOPT_POSTFIELDS, $post);        // Передаем POST данные
  19. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);     // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...').
  20.                                                     // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
  21.  
  22. $html = curl_exec($ch); // Записываем пришедшие данные в переменную    
  23. curl_close($ch);        // Закрываем сеанс работы CURL
  24. echo $html;             // И вуаля :) Выводим авторизованную страницу
  25. ?>


После чего мне присылается в ответ белая страница с такой информацией (рис. 2. логинпароль)

Если в строке
PHP:
скопировать код в буфер обмена
  1. $post = 'op=login&btc_address=' . $login . '&password=' . $pass . '&recaptcha_challenge_field=';  // POST данные

поменять параметр op на home
PHP:
скопировать код в буфер обмена
  1. $post = 'op=home&btc_address=' . $login . '&password=' . $pass . '&recaptcha_challenge_field=';  // POST данные


тогда будет выводится сайт, но я на нем не буду авторизован.

Прикладываю картинку на котором находится GET запрос с куками
Я думаю что надо отправить ЭТИ куки на сервер.
Вопрос 1: Как отправить куки на сервер (Желательно код полностью)
Вопрос 2: как организовать авторизацию на сайте и вытащить информацию от туда???

P.S. Чисто спортивный интерес. Не для спама
Прикреплено изображение (Нажмите для увеличения)
логинпароль.jpg

(Отредактировано автором: 13 Июня, 2014 - 09:10:04)

 
 Top
babib
Отправлено: 13 Июня, 2014 - 09:07:47
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




(рис.2. op=home)
Удалил картинку

(Отредактировано автором: 13 Июня, 2014 - 15:05:43)

 
 Top
esterio
Отправлено: 13 Июня, 2014 - 11:14:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




делать два запроса
1. логин
2. сам запрос страницы

кукы здесь
babib пишет:
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
 
 Top
babib
Отправлено: 13 Июня, 2014 - 12:35:53
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




esterio пишет:
делать два запроса
1. логин
2. сам запрос страницы

кукы здесь
babib пишет:
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла


А куки должны содержать теже параметры что и на картинке (не должны быть зашифрованы)? если да тогда там нету именно тех.

Тема еще АКТУАЛЬНА

(Отредактировано автором: 13 Июня, 2014 - 13:07:46)

 
 Top
babib
Отправлено: 13 Июня, 2014 - 15:03:34
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июнь 2014  


Помог: 0 раз(а)




Задача решена. Спасибо всем. Решение нашел на этом сайте --> http://www[dot]pilot34[dot]com/2008/07/c[dot][dot].php-cookies[dot]html

Зашел как зарегистрированный пользователь. Осталось получить нужную информацию

(Отредактировано автором: 13 Июня, 2014 - 15:04:38)

 
 Top
valfame
Отправлено: 27 Декабря, 2014 - 23:01:04
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




babib пишет:
Задача решена. Спасибо всем. Решение нашел на этом сайте --> http://www[dot]pilot34[dot]com/2008/07/c[dot][dot].php-cookies[dot]html

Зашел как зарегистрированный пользователь. Осталось получить нужную информацию


Столкнулся с подобной проблемой, пытаюсь авторизоваться на этом же сайте.
После отправки данных логин/пароль на сайт, получаю содержимое сайта в переменную.
Но анализируя это содержимое вижу, что пользователь не залогинился.
Поделитесь пож. вашим решением этой задачи.
 
 Top
zatvorius
Отправлено: 09 Января, 2015 - 15:56:16
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




Приветствую, буду тоже очень признателен, если ТС поделится своими наработками, пытаюсь авторизоваться на этом сайт, но получаю пустую страницу в ответ, сохраняю куки и при их отправке вижу, что я не авторизован, не могу понять в чем причина.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB