Главная > PHP > BPoster или собственный бот регистрации в соц закладках bobrdobr

BPoster или собственный бот регистрации в соц закладках bobrdobr

Многие наверно знают что такое BPoster. А для тех кто не знает расскажу немного.
Это сервис автоматического постинга в соц закладки. Огромным плюсом системы считается возможность автоматической регистрации аккаунтов.

И так, о чем это я =)

Идея автоматической регистрации в соц. закладках зародилась у меня с того самого момента когда я сохранил первую закладку. И я начал писать скрипт. Написал для 3-4х сервисов, и на этом все закончилось.
Потом появился BPoster и идея уже стала не актуальна =(

Перейдем к делу.
Вот класс позволяющий зарегистрировать сайт в закладках bobrdobr.ru

class Poster
{
   private $username;
   private $password;

   private $url;
   private $title;
   private $tags;
   private $description;

   private $userAgent='User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';

    function bobrdobr()
    {

        $url="http://bobrdobr.ru/login/";
        $post=array("username"=>$this->username,
                    "password"=>$this->password);

         $ch = curl_init();
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_HEADER, 1);
         curl_setopt($ch, CURLOPT_USERAGENT, $this->userAgent);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($ch, CURLOPT_COOKIE, "bobrologin=1");
         curl_setopt($ch, CURLOPT_POST, 1);
         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
         // Получаем и сохраняем куки
         curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');


        $result = curl_exec($ch);

        $sess_cookie=substr($result, strpos($result, "sessionid=")+10, 32);

        // Этот блок для того что бы получить значение переменной name="killspammers"
         $url = "http://bobrdobr.ru/new_bookmark.html";
         curl_setopt($ch, CURLOPT_URL, $url);
         curl_setopt($ch, CURLOPT_HEADER, 1);
         curl_setopt($ch, CURLOPT_USERAGENT, $this->userAgent);
         curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


         $result = curl_exec($ch);

        // тут мы ее получаем
        $s_hidden=substr($result, strpos($result, 'name="killspammers" value=')+27, 26);

        $result = curl_exec($ch);

        //сформировали строку пост данных состоящую из пар поле=>значение
        $post=array("url"=>$this->url,
                    "name"=>$this->title,
                    "tags"=>$this->tags,
                    "description"=>$this->description,
                    "killspammers"=>$s_hidden);

        //адрес на который шлем запрос (выдираем значение из action нашей формы)
         curl_setopt($ch, CURLOPT_URL, "http://bobrdobr.ru/new_bookmark.html?next=None&copied=");
         curl_setopt($ch, CURLOPT_HEADER, 1);
         curl_setopt($ch, CURLOPT_USERAGENT, $this->userAgent);
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        //Показываем полученные ранее куки
        //говорим что у нас есть POST данные для сервера
        //указываем на наши POST данные
         curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
         curl_setopt($ch, CURLOPT_POST, 1);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

         $result = curl_exec($ch);

         curl_close($ch);
    }
}

$post=new Poster();

 $post->username="6o6pbI";
 $post->password="123123";
 $post->url="n-professor.ru";
 $post->title="Записки профессора";
 $post->tags="PHP, СЕО, SEO, JS, JavaScript, JQuery";
 $post->description="Блог начинающего программиста.Много полезной информации для
 новичков и огромный простор для критики от проффи."
;

  $post->bobrdobr();

Пользуйтесь если понадобится=)

Поделиться в соц. сетях

Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

PHP , ,

  1. 26 Июль 2009 из 20:21 | #1

    Для новичков будет неплохим примером по CURL, но можно раза в 2 уменьшить код =)

  2. 26 Июль 2009 из 20:25 | #2

    @Holy Diver
    Это да, в новом примере про memori.ru будет в 2 раза меньше.

    А хотя я и эти 2 статьи подредактирую. =)

  3. 20 Апр 2010 из 1:17 | #3

    А есть ли аналог написан на С# к примеру?

  4. апку
    16 Окт 2011 из 20:11 | #4

    Прикольно!!!

  5. 09 Янв 2012 из 16:01 | #5

    У вас там ошибка нужно вместо  $post=new Post(); => $post=new Poster();

  1. 13 Апр 2010 из 19:54 | #1