Постер в соц закладки
Пятница, 18 сентября 2009 г.
Просмотров: 14071
Подписаться на комментарии по RSS
Все знают, что социальные закладки превратились в линкопомойки, уже
написано более десятка автоматических постеров, которые засирают базу
соц. закладок ссылками на ГС и ГБ. Напишем и мы еще один
Цель: Используя функции библиотеки CURL
сделать искусственный HTTP POST запрос, авторизироваться, сохранить
соц. закладку, и в целом показать как обычно делаются автоматические
постеры.
Да,
у бобрдобра есть API для постинга закладок, но я усложню себе задачу, и
с имитирую заход из браузера, введу программно логин и пароль, заполню
поля для сохранения закладки.
Сперва нужно посмотреть, как соц. закладка добавляется вручную, и
проследить за этим процессом Http сниффером (я использую плагин для
FIrefox - HttpFox), а затем воспроизвести программно.
1. Набираем в браузере адрес http://bobrdobr.ru/
2. Вводим логин и пароль, смотрим сниффер. Видим главное:
- Отправлять POST запрос нужно на адрес http://bobrdobr.ru/login/
- POST данные выглядят следующим образом:
- При успешном входе сервис пересылает нас ч-з 302-редиррект на главную страницу.
username=%ЛОГИН%&password=%ПАРОЛЬ%&remember_user=on&next=%2F
3. Кликаем по ссылке “Добавить закладку”, получаем диалог, в котором вводим все данные и жмем “Сохранить”.
Аналогично как и во втором пункте я с помощью сниффера получаю следующую информацию:
- Отправка POST данных идет на ссылку: http://bobrdobr.ru/new_bookmark.html
- Программисты ДоброгоБобра посчитали что смогут спастись от спамеров
- Ну и напоследок POST данные имеют следующий вид:
тем, что будут автоматически генерировать некий код… но не
предусмотрели, что его можно выпарсить из html кода. Имеем ввиду вот
эту строчку, ее нужно считать:
<<span class="start-tag">input</span><span class="attribute-name"> type</span>=<span class="attribute-value">"hidden" </span><span class="attribute-name">name</span>=<span class="attribute-value">"killspammers" </span><span class="attribute-name">value</span>=<span class="attribute-value">"055C5507560701013A040C0557"</span><span class="error"><span class="attribute-name">/</span></span>>
killspammers=530154500556000F6F52550000&url=%ССЫЛКА%&name=%ЗАГОЛОВОК%&tags=%ТЕГИ%&description=%ОПИСАНИЕ%&add_bookmark_submit=Сохранить
Теперь, когда механизм сохранения закладки для меня ясен, я начинаю программировать.
Каждую строчку я прокомментировал, надеюсь понятно. Вбивайте свои логины и пароли на БобрДобр и пробуйте, все работает.
<?php // Ваши логин и пароль в бобрдобр $login = 'ваш логин'; $pass = 'ваш пароль'; // Данные для постинга $url = "http://www.google.com/"; $name = "Это гугл, чтобы не забыть!"; $tags = "Поисковая система, Супер-пупер"; $content = "Это содержимое"; // Создаем подключение if( $curl = curl_init() ){ // Нужно загрузить главную страницу бобра curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/'); // Нужно помнить кукисы! curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE); curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile"); // Скачанный код возвращаем в переменную а не в поток curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); // "Следовать туда, куда зовут". Если сервис выдает 302 код, мы следуем по этой ссылке curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true); // Таймаут, если сервис не отвечает больше 30 секунд, выходим curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30); // Активируем GZIP сжатие трафика curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate'); // Соврем Бобру, напишем в юзер-агент неправду curl_setopt($curl,CURLOPT_USERAGENT,'Бобр - дурак'); // Если все ок, в $html вернется html код главной страницы if( $html = curl_exec($curl) ){ // Указываем куда отправлять запрос curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/login/'); // Указываем подключению, что слать нужно не GET (по умолчанию), а POST запросы curl_setopt($curl,CURLOPT_POST,TRUE); // Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля curl_setopt($curl,CURLOPT_POSTFIELDS,"username=$login&password=$pass&remember_user=on&next=%2F"); // Если все ок, в $html вернется html код главной страницы if( $html = curl_exec($curl) ){ // Парсим этот сложнейший код, который защищает Доброго Бобра от спама! if( preg_match('/\<input type=\"hidden\" name=\"killspammers\" value=\"(.+?)\"\/\>/', $html, $out) ){ // Отправляем СПАМ! // Указываем куда отправлять запрос curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/new_bookmark.html'); // Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля curl_setopt($curl,CURLOPT_POSTFIELDS,"killspammers=$out[1]&url=$url&name=$name&tags=$tags&description=$content&add_bookmark_submit=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C"); if( $html = curl_exec($curl) ){ echo 'Постинг выполнен!'; } } } } // Закрываем подключение, очищаем память curl_close($curl); } ?>
Вот и все. Надеюсь было интересно. Мне всегда хотелось создать свой постер в соц закладки, но подумав, я купил готовый bposter . Думаю у них аналогично постинг и реализован. Источник
Еще записи по теме
- Заработок в интернете ЧАСТЬ 2
- Зашифрованный php редирект
- кнопка скачать на javascript
- Мой первый самописный движок для сайта
- Восстановление материнской платы - NF4UL-A9
- Самодельная втулка для закрепления багажника на велосипеды серии Avalanche фирмы GT. (GT Avalanche 2.0)
- Онлайн игра Менеджер, или Монополия по Русски
Комментариев: 1
Спасибо за инфу, попробую сделать на другие сервисы.