Автопостер memori.ru
Не для кого не секрет, что сейчас с помощью социальных закладок, можно немножко поднять трафик своему сайтику. А трафик – это, пусть маленькая, но все же денюжка)))
Самборский Евгений писал в своем блоге, как можно написать автопостер в Bobrdobr. ru (тоже очень популярный сервис социальных закладок). Сегодня мы будем писать автопостер в memori.ru
Итак, вначале заходим на memori . ru . Регистрируемся. Затем, нам нужно отсниферить все POST запросы при авторизации, я пользуюсь десктопной программой CommView. Запускаем программу и авторизируемся.. В логах снифер, видим следующее:
POST /login/ HTTP/1.1 User-Agent: Opera/9.80 (Windows NT 5.2; U; ru ) Presto/2.2.15 Version/10.01 Host: memori . ru Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: ru-RU , ru;q=0.9,en;q=0.8 Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Referer: http:// memori . ru / Cookie: blogShow6988=3; sort=date; mlpopunder=; MEMORISESSID=4234a312b18596c0f266c4d2d88a4123; toolbarOffer=10 Cookie2: $Version=1 Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers Content-Length: 31 Content-Type: application/x-www-form-urlencoded login=(логин)&password=(пароль)&membermy=on HTTP/1.1 302 Found Server: nginx/0.7.62 Date: Tue, 08 Dec 2009 08:31:58 GMT Content-Type: text/html; charset=windows-1251 Connection: keep-alive Server: nginx/0.7.62 Date: Tue, 08 Dec 2009 08:31:59 GMT Content-Type: text/html; charset=windows-1251 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/5.2.8 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Encoding: gzip
Видно, что при авторизации, на адрес http:// memori.ru /login/ отправляется POST запрос
login=(логин)&password=(пароль)&membermy=on
После успешной авторизации, через 302 редирект, мы перенаправляемся на главную страницу.
Следующая наша задача. Нужно отсниферить POST запрос, при добавлении закладки. Но все уже сделано за вас))
POST /linkaddaction/ HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 5.2; U; ru ) Presto/2.2.15 Version/10.01
Host: memori . ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU , ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http:// memori . ru /linkadd/
Cookie: blogShow6988=3;
MEMORISESSID=648c85a9f932983aad6aa52ffd2c63ee;
login=Zircool; password_hash={длинное значение}; sort=date; toolbarOffer=17
Cookie2: $Version=1
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Content-Length: 324
Content-Type: application/x-www-form-urlencoded
book=&urlRedirect=&url=http%3A%2F%2Fwww.zircool. ru %2F&title=%C1%EB%EE%E3+%CD%EE%E2%EE%F0%EE%F1%F1%E8%E9%F1%EA%EE%E3%EE+%E1%EE%EC%E6%E0&description=%D1%EA%F0%EE%EC%ED%FB%E9+%E1%EB%EE%E3+%CD%EE%E2%EE%F0%EE%F1%F1%E8%F1%EA%EE%E3%EE+%C1%EE%EC%E6%E0.&hdescr=&tags=%E1%EE%EC%E6%2C%E1%EB%EE%E3%2Cseo&mark=&showOnMain=on&token=53ebeb
Итак, для того что бы добавить закладку, нам необходимо отправить POST запрос на адрес http:// memori.ru/linkaddaction/
Конструкторы memori . ru не спят ночами и каждый раз что-то новенькое придумывают. Обратите внимание на конец пост запроса, а именно на параметр
&token=53ebeb
Это секретный код, который генерируется автоматически, нужен он для защиты от спамеров. Его без труда, с помощью регулярки, можно вытащить из исходного кода страницы.
Теперь когда мы разобрали механизм работы, авторизации и добавления закладки, можно писать скрипт.
// Ваши логин и пароль в memori
$login = 'login';
$pass = 'qwerty';
// Данные для постинга
$url = 'http://www.zircool. ru /';
$name = 'Блог Новороссийского бомжа';
$tags = 'бомж,блог,seo';
$content = 'Блог Новороссиийского SEO бомжа';
// Создаем подключение
if( $curl = curl_init() ){
// Нужно загрузить главную страницу memori
curl_setopt($curl,CURLOPT_URL,'http:// memori . 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,'IE7');
// Если все ок, в $html вернется html код главной страницы
if( $html = curl_exec($curl) ){
// Указываем куда отправлять запрос
curl_setopt($curl,CURLOPT_URL,'http:// memori . ru /login/');
// Указываем подключению, что слать нужно не GET (по умолчанию), а POST запросы
curl_setopt($curl,CURLOPT_POST,TRUE);
// Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля
curl_setopt($curl,CURLOPT_POSTFIELDS,'login='.$login.'&password='.$pass.'&membermy=on');
// Если все ок, в $html вернется html код главной страницы
if($html = curl_exec($curl) ){
// Указываем куда отправлять запрос
curl_setopt($curl,CURLOPT_URL,'http:// memori . ru /linkadd/');
if($html = curl_exec($curl) ){
// Парсим этот сложнейший код, который защищает от спама!
if( preg_match('/<input type="hidden" name="token" value="(.+?)" />/', $html, $out) ){
// Указываем куда отправлять запрос
curl_setopt($curl,CURLOPT_URL,'http:// memori . ru /linkaddaction/');
// Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля
curl_setopt($curl,CURLOPT_POSTFIELDS,'book=&urlRedirect=&url='.$url.'&title='.$name.'&description='.$content.'&hdescr=&tags='.$tags.'&mark=&showOnMain=on&token='.$out[1]);
if( $html = curl_exec($curl) ){
echo 'Постинг выполнен!';
}
}
}
}
}
// Закрываем подключение, очищаем память
curl_close($curl);
}
Вот и все! Автопостер написан… Тестировал его на денвере, все корректно работает. Скрипт работает на curl`ах, так что для работы скрипта, хостинг должен поддерживать CURL. Желаю удачи!
Постовой: В последнее время все чаще смотрю фильмы онлайн.
Подписаться на обновления
Рубрики
- 1С
- Bitrix
- CMS
- CSS
- Human Emulator
- Javascript
- JQuery
- Life
- PHP
- SEO
- SEO news
- SEO сцена
- VPS
- Windows
- Без рубрики
- Жизнь
- Интервью
- Конкурсы
- Мануалы
- Математика
- Новости
- Планы
- Покупаем
- Сайты
- Софт
- Юзабилити
Архив
- Февраль 2012
- Январь 2012
- Декабрь 2011
- Ноябрь 2011
- Октябрь 2011
- Сентябрь 2011
- Июль 2011
- Июнь 2011
- Май 2011
- Апрель 2011
- Март 2011
- Февраль 2011
- Январь 2011
- Декабрь 2010
- Ноябрь 2010
- Октябрь 2010
- Сентябрь 2010
- Август 2010
- Июль 2010
- Июнь 2010
- Май 2010
- Апрель 2010
- Март 2010
- Февраль 2010
- Январь 2010
admin

