Ответов: 6 Просмотров: 4877
|
Добрый день. Возникла задачка вытащить со стороннего сайта некую информацию.
Пытался реализовать это при помощи cURL. И вот что получилось.
Было подмечено что сначала отправляется POST запрос на сервер с логином и паролем.
После перезагрузки страницы отправляется GET запрос с сохраненными куками. (рис. 1. op=home)
Мною были выявлены нужные поля для авторизации.
Был организован POST запрос на этот сайт с правильными логином и паролем.
привожу пример кода
PHP:
скопировать код в буфер обмена
<?PHP $url = 'http://freebitco.in'; // URL сайта на котором будем авторизоваться $urlTo = 'http://freebitco.in'; // URL на которой будем слать POST данные $login = 'blabla@mail.ru'; // Ваш логин $pass = 'parol'; // Ваш пароль $post = 'op=login&btc_address=' . $login . '&password=' . $pass . '&recaptcha_challenge_field='; // POST данные $ch = curl_init(); // Инициализируем сеанс CURL curl_setopt($ch, CURLOPT_URL , $url); // Заходим на сайт curl_setopt($ch, CURLOPT_RETURNTRANSFER , true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную $html = curl_exec($ch); // Имитируем заход на сайт curl_setopt($ch, CURLOPT_URL , $urlTo); // Устанавливаем адрес куда будем слать POST данные curl_setopt($ch, CURLOPT_COOKIEJAR , 'cookie.txt'); // Записываем cookies в файл, чтобы потом можно было их считать curl_setopt($ch, CURLOPT_COOKIEFILE , 'cookie.txt'); // Теперь читаем cookies с файла //curl_setopt( $ch, CURLOPT_USERAGENT, "" ); curl_setopt($ch, CURLOPT_POST , true); // Говорим, что информация будет отправляться методом POST curl_setopt($ch, CURLOPT_POSTFIELDS , $post); // Передаем POST данные curl_setopt($ch, CURLOPT_FOLLOWLOCATION , true); // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных $html = curl_exec($ch); // Записываем пришедшие данные в переменную echo $html; // И вуаля :) Выводим авторизованную страницу ?>
После чего мне присылается в ответ белая страница с такой информацией (рис. 2. логинпароль)
Если в строке
поменять параметр op на home
тогда будет выводится сайт, но я на нем не буду авторизован.
Прикладываю картинку на котором находится GET запрос с куками
Я думаю что надо отправить ЭТИ куки на сервер.
Вопрос 1: Как отправить куки на сервер (Желательно код полностью)
Вопрос 2: как организовать авторизацию на сайте и вытащить информацию от туда???
P.S. Чисто спортивный интерес. Не для спама |