Автопостер memori.ru

Возврат к списку

memori_02.png

Не для кого не секрет, что сейчас с помощью социальных закладок, можно немножко поднять трафик своему сайтику. А трафик – это, пусть маленькая, но все же денюшка))) Самборский Евгений писал в своем блоге, как можно написать автопостер в 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. Желаю удачи!

Постовой: В последнее время все чаще смотрю фильмы онлайн.
>


Возврат к списку