Реализация бота для отправки комментариев в Живой Журнал на языке Python

Немного рекламы

Описание

Исходники этого бота можно рассматривать как дополнение к статье Программная отправка комментариев в livejournal. Так как все примеры в серии статей про работу с сервером ЖЖ написаны на языке C#, то я решил вынести вынести этого бота отдельно, но по сути здесь реализован все тот же алгоритм, что описан в упомянутой выше статье.

Я очень надеюсь, что вы не будете использовать этого бота для рассылки спама, а будете применять его в более полезных задачах.

Исходники и пример использования

Скачать бота вы можете здесь.

Работу бота я описывать не буду, потому что он работает точно так же, как написано в статье, а просто приведу пример его использования.

Если нужно отправить комментарий в пост, то использование бота будет выглядеть примерно так:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from bot import LJbot

if __name__ == "__main__":
    try:
        postUrl = "http://jenyay-test.livejournal.com/21935.html"

        login = u"USERNAME"
        password = u"PASSWORD"

        bot = LJbot (login, password)

        subj = unicode ("Превед", "utf-8")
        message = unicode ("Превед, ботег!!!", "utf-8")

        bot.postComment (postUrl, message, subject = subj, replyto = 0)

    except ServerError:
        print "Server Error"
    except AuthError:
        print "Auth Error"
    except ParseError:
        print "Parse Error"

Разумеется, что вы должны подставить свой логин и пароль.

Если нужно ответить на комментарий, то в качестве параметра replyto нужно ввести идентификатор комментария:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from bot import LJbot

if __name__ == "__main__":
    try:
        postUrl = "http://jenyay-test.livejournal.com/21935.html"

        login = u"USERNAME"
        password = u"PASSWORD"

        bot = LJbot (login, password)

        subj = unicode ("Превед", "utf-8")
        message = unicode ("Превед, ботег!!!", "utf-8")

        bot.postComment (postUrl, message, subject = subj, replyto = 189)

    except ServerError:
        print "Server Error"
    except AuthError:
        print "Auth Error"
    except ParseError:
        print "Parse Error"

История версий

1.2

  • Изменения, связанные с изменениями на сервере ЖЖ

1.1

  • Добавил возможность отвечать на комментарии.
  • Почистил код.

1.0

  • Кажется, бот работает.

Немного рекламы

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
4 stars

Рейтинг 3.6/5. Всего 9 голос(а, ов)



Антон 22.12.2010 - 11:18

Бот для ЖЖ

Бот комментит только один раз. Если попробовать еще раз, ничего не произойдет, ровно как и если удалить коммент, и попробовать еще раз.

Jenyay 22.12.2010 - 22:28

У меня такое же было, если слать одни и те же сообщения. Если слать разные сообщения, то коммент отправлялся. Скорее всего это какой-то антиспам в ЖЖ работает.

Стас 01.02.2011 - 23:56

Привет. Есть идеи как получить все комменты к любой статье? И своей, и чужой.

pstas.livejournal.com 06.03.2011 - 19:04

send message бот в ЖЖ

Прежде всего - спасибо! Я пользуюсь Вашим кодом для уведомления о рейтинге голосований в ЖЖ (http://pollswatcher.org). У меня к Вам следующий вопрос - можно ли модифицировать бот для отправки частных сообщений в ЖЖ (LJ user->profile->send message)?

Jenyay 06.03.2011 - 19:14

Я не разбирался с тем, как отправлять такие сообщения, но после Вашего коммента заинтересовался этим вопросом :) Если руки дойдут, надо будет попробовать.

pstaslivejournalcom 13.03.2011 - 18:01

send message бот в ЖЖ

Спасибо! Если будут результаты, напишите, пожалуйста, на pstas@livejournal.com

dexes 14.08.2011 - 07:25

Что-то не работает. После добавления комментария пишет Your login cookie seems to have disappeared?

Jenyay 14.08.2011 - 09:13

Попозже попробую, может быть что-то изменили в движке ЖЖ.

Sanchez 17.11.2011 - 16:10

Ну как, попробовали?

Sanchez 17.11.2011 - 16:17

Проведем эксперимент. Залогинимся, вызовем в браузере форму ответа на коммент http://aaa.livejournal.com/11111.html?replyto=999999. Отправленный при этом запрос обозначим Request1, полученный ответ - Response1. Теперь вобьем какое-нибудь body и нажмем Post Comment. Произошла коммуникация Request2/Response2. В Request2 посылаются взятые из Response1 куки с информацией о логине и форма с темой/ответом и скрытыми полями типа lj_form_auth, взятыми также из Response1.
Еще раз вызовем форму ответа на коммент, в HTTP-анализаторе скопируем из пришедшего респонса куки и скрытые поля и программно сформируем реквест с формой, как показано в С#-примере Jenyay. В ответ получим Your login cookie seems to have disappeared?
Фигня, однако :(

 21.11.2012 - 10:09

"Your login cookie seems to have disappeared"

Надо жж юзернейм приводить к виду blabla_blabla, в виде bla-bla не работает.


Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 537