Скрипт на PHP + cURL — автопостинг записей сайта, блога в социальные сети и сообщества.

Доброго времени сутко уважаемые читатели блога gloys.ru.

Многие блоггеры написав и опубликовав запись на своём ресурсе, как можно скорей пытаются добавить её в индекс — начинают добавлять анонсы записей в социальные закладки, в различные сообщества определённой тематики, простовляют лайки делают ретвиты и прочее. Ну и конечно же после всей этой проделанной работы ваша страница не только успешно попадёт в индекс поисковых систем (о том как ускорить индексацию сайта я уже писал) но и вы получаете тематический траффик.

Скрипт на PHP + cURL — пример автопостинга записей сайта, блога в социальные сети и сообщества.

Собственно я вроде бы ничем не хуже остальных и делаю то же самое. Конечно можно установить себе на сайт различные плагины которые позволяют быстро ретвитнуть и лайкнуть определённую запись, но это не моё. К слову говоря посетив Блог Ягнёнка можно узнать как именно установить подобные плагины для отоброжения социальных закладок, а так же и про другие модули и фишки с джумлой. Но, как я уже писал выше в ручную например мне это порядком поднадоело делать и я стал думать как это дело можно автоматизировать, конечно существует множество различных онлайн сервисов и программного обеспечения для подобных целей. Но тут есть один минус- эти сервисы как правило заточены под определённые ресурсы, что не есть гуд если нужно постить в какие-то определённые сообщества и т.п. В данной заметке пойдёт речь именно о том, как самому написать скрипт автопостинга, который мы может крутить и докручивать как нам только заблагоразумиться.
Разделим статью на на 2 этапа:

  • Анализ выбранного ресурса под постинг.
  • Пример скрипта автопостинга на php + curl

Теперь перейдём к рассмотрению каждого из этих пунктов.

Анализ выбранного ресурса под постинг

Это пожалуй самый сложный пункт, конечно- если вы уже знакомы со сниффером (а его мы сейчас и будем рассматривать), то данный этап не займёт у вас много времени.

— = IEInspector HTTP Analyzer = —

HTTP сниффер IEInspector HTTP Analyzer

HTTP сниффер IEInspector HTTP Analyzer


Для того что бы отследить какими данными обменивается ваш браузер (да и не только он) с веб-ресурсами я использую HTTP сниффер IEInspector HTTP Analyzer. Эти данные нам потребуются для нашего скрипта, а именно нам необходимо узнать в качестве каких параметров передаётся логин, пароль, текст анонса и прочее — что потребуется для автоматической авторизации скриптом и публикации записи. IEInspector HTTP Analyzer для этих целей очень даже подходит, он прост в обращении и не требует от вас каких-то убер знаний, всё достаточно просто- он показывает http заголовки, передаваемые данные методами GET, POST, ответ полученный от сервера, чистые — так называемые «сырые данные» (заголовок + все данные, куки..etc). В общем для нас этого больше чем достаточно. перейдём непосредственно к изучению социального сообщества. Я выбрал сервис spooo.ru, который позволяет опубликовать ваш анонс с открытой для поисковиков ссылкой на оригинал.
Собственно запускаем сниффер, заходим на spooo.ru (уккаунт у вас предварительно уже должен иметься на этом сервисе). Далее переходим опять в сниффер и кликаем на кнопочку «Start» что рядом с зелёной стрелочкой в тулбаре. То есть, сниффер начал работать и отслеживать все запросы, которые идут по сети. Теперь нам остаётся только зайти на выбранный нами ресурс и попробовать авторизоваться. То есть вводим свои данные логин / пароль, жмём кнопочку «Войти» и смотрим в сниффер
данные которые передаються на spooo.ru для авторизации

данные которые передаються на spooo.ru для авторизации


Как мы можем наблюдать передаются 3 параметра POST методом, а именно параметр:

  • login — ваш логин в системе.
  • password — ваш пароль от аккаунта.
  • url — хз зачем нужен этот параметр, возможно для редиректа или ещё чего..его мы просто игнорируем в общем.

[ADSENSE]

Так, для первого запроса данные у нас есть. Теперь перейдём ко второму, основному запросу- собственно запрос который опубликует нашу запись. Опять включаем сниффер (а вы разве не нажали на стоп? в противном случае логи засруться всякой ерундой), переходим сюда » http://spooo.ru/blogs/add/ «, и заполняем все поля которые необходимы для того что бы опубликовать вашу запись в своём блоге. Нажимаем на «Создать» и бежим смотреть логи в сниффере.

Второй POST запрос на spooo.ru для размещения записи в блоге

Второй POST запрос на spooo.ru для размещения записи в блоге


Собственно как мы видим данные опять передаются методом POST, в принципе и так всё думаю понятно и всё же:

  • data[new][blog_id] — айди блога (его мы будем выдирать регуляркой).
  • data[new][title] — Заголовок записи.
  • data[new][text] — Тело записи.
  • data[new][tags] — Теги.

Думаю всё понятно. На этом этапе, пожалуй, закончим разбираться с данными которые необходимо отправлять на сервер.

Пример скрипта автопостинга на php + curl

Теперь перейдём к написанию скрипта на php для постинга, который будет отправлять аналогичные запросы с помощью cURL. Я не буду лить воду- просто объясню что мы будем делать и предоставлю код.

Всего нам потребуется сделать 3 запроса, 1 методом GET и 2 POST. 1 запрос это авторизация, 2 запрос будет гет, нужен он для получения cookie или, какой идентификационной фишки — я не разбирался, но без этого запроса работать не будет. Ну и 3 запрос, запрос который передаёт данные необходимые для размещения, айди блога, тайтл, текст и теги.
Теперь собственно сам скрипт:

<?PHP
$login = "Username"; // здесь ваш логин на spoov.ru, существующий естественно.
$password = "123456"; // пароль от аккаунта
// Инициализируем CURL 
$ch = curl_init();
	//Формируем POST данные
	$postdata = 'login='.$login.'&password='.$password.'&url=';
	$uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
// 2. указываем параметры, включая url
	curl_setopt($ch, CURLOPT_URL, "http://spooo.ru/users/login");
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
	curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
	curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
	curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
	curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
// Отпровляем запрос и получаем страницу
curl_exec($ch);
//--------------------------------------------------------------------------------------------
   // Отпровляем гет запрос и получаем сессию
  curl_setopt($ch, CURLOPT_URL, 'http://spooo.ru/blogs/add/');
  curl_setopt($ch, CURLOPT_HEADER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  curl_setopt($ch, CURLOPT_USERAGENT, 'PHP Bot (http://spooo.ru)');
  curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); //Из какого файла читать
  curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); //В какой файл записывать
  $data = curl_exec($ch);
 // вырезаем ID первого нашего блога, в который будем размещать
  preg_match('#<option 			value=\"(.*?)\">#si',$data,$match);
  // $match[1]; - тут наш айди блога
//--------------------------------------------------------------------------------------------
    // Формируем 2й POST запрос, который отсылает данные для публикации записи
	$postdata = "data[new][blog_id]=".$match[1]."&data[new][title]=ZAGALOVOK&data[new][text]=TEKSTOVOE SOOBSHEBIE&data[new][tags]=TEG1, TEG2"; 
	$uagent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
// 2. указываем параметры, включая url
	curl_setopt($ch, CURLOPT_URL, "http://spooo.ru/blogs/add/save");
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
	curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
	curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); 
	curl_setopt($ch, CURLOPT_HEADER, 0); 
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //
	curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt"); 
	curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt"); 
curl_exec($ch);
curl_close($ch);
?>

То есть всё достаточно просто. Если будут вопросы то задавайте, с удовольствием отвечу.
На этом, пожалуй, всё удачи.

Все новости » Без рубрики » Скрипт на PHP + cURL — автопостинг записей сайта, блога в социальные сети и сообщества.

Редакторы информационного интернет агентства EmmyNews.ru следят за свежими новостями со всего мира, предпочтение отдаётся срочным свежим новостям связанных с Россией, Украиной и Белоруссией. Периодически публикуемые свежие новости сегодняшнего дня, позволяют нашим читателям следить за самыми острыми новостями.

Любой читатель новостного интернет агентства EmmyNews (EN) может получать свежие новости на главной странице Яндекса через наш виджет, а так же подписавшись на каналы в социальных сетях.

Проект EmmyNews.ru возник на волне украинского кризиса и в первую очередь трендовые новости публикуемых на нашем сайте, связаны именно с кризисом на Украине и его последствиями. Всем добра! =)

twitter VK G. Plus