BPoster или собственный бот регистрации в соц закладках bobrdobr
Многие наверно знают что такое BPoster. А для тех кто не знает расскажу немного.
Это сервис автоматического постинга в соц закладки. Огромным плюсом системы считается возможность автоматической регистрации аккаунтов.
И так, о чем это я =)
Идея автоматической регистрации в соц. закладках зародилась у меня с того самого момента когда я сохранил первую закладку. И я начал писать скрипт. Написал для 3-4х сервисов, и на этом все закончилось.
Потом появился BPoster и идея уже стала не актуальна =(
Перейдем к делу.
Вот класс позволяющий зарегистрировать сайт в закладках bobrdobr.ru
{
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();
Пользуйтесь если понадобится=)
Для новичков будет неплохим примером по CURL, но можно раза в 2 уменьшить код =)
@Holy Diver
Это да, в новом примере про memori.ru будет в 2 раза меньше.
А хотя я и эти 2 статьи подредактирую. =)
А есть ли аналог написан на С# к примеру?
Прикольно!!!
У вас там ошибка нужно вместо $post=new Post(); => $post=new Poster();
Спасибо, исправил.