Instagram Like Bot

    Все началось с того, что супруга завела аккаунт в Инстаграме, начала постить кучу фоток и обижаться, если я вовремя их не лайкую. Пришлось заняться автоматизацией семейных отношений.

    Заказчик в моем лице определил следующие требования:
    1. Симуляция работы в Инстаграме как обычный пользователь, лайкание в одном треде (чтобы Instagram не забанил моего бота).
    2. Возможность авто-лайкания произвольного количества аккаунтов с произвольной глубиной лайков.
    3. Запуск через шедулер, работа в бэкграунде.

    Выбор пал на nodejs. Почему nodejs? Потому на Perl'е (который я использую время от времени уже несколько лет) делать не хотелось, а nodejs привлек внятным менеджеров пакетов, нативной поддержкой JSON и вообще Javascript в браузере роднее чем какой-нибудь Python.



    Конечно, Instagram имеет свое API и теоретически его можно было использовать, но программы, использующие API Instagram'a требуют специального аппрувола, а мне хотелось чтобы скрипт могли использовать массово.

    Полный текст скрипта доступен на github.com/get-a-clue/nodejs

    Для симуляции браузера конечно используется selenium, в оригинальной версии скрипта запускается браузер Chrome для отладки, если вы хотите использовать скрипт только в консоли, нужно заменить chrome на phantomjs в строке 24. Phantomjs — это бразузер на Webkit со всеми плюшками типа CSS, JS и т.д.

    Установка и запуск описана в комментарии к скрипту. Кроме того, вам потребуется самостоятельно установить сам nodejs и настроить периодический запуск скрипта по расписанию. Конечно, скрипт еще далек от совершенства, нужно сделать отчетность и обработку ошибок, но свою функцию он успешно выполняет, экономит мне время да и жена теперь довольна. :)
    Поделиться публикацией

    Похожие публикации

    Комментарии 34

      +7
      Код не смотрел — не надо оно мне, но за «автоматизацию семейных отношений» спасибо!
      До чего дошел прогресс)))
        +1
        Главное не перестараться с автоматизацией :)
        +14
        Скоро в вашей семейной жизни:
        image
          +2
          Когда открывал пост думал будет про использование API Instagram. А там как известно сейчас довольно серьезные ограничения с недавних пор и надо аппрува ждать.
          Сильно удивился когда неделю назад написал мне чел который пытался развернуть мой открытый проект (https://github.com/rhamdeew/InStat) для инста, а в итоге столкнулся с тем что API теперь даже фоточки не отдает без аппрува.
            0
            а в итоге столкнулся с тем что API теперь даже фоточки не отдает без аппрува.

            Как это не отдает? Прям сейчас сижу отлаживаю скрипт, который по тегу отлавливает публикации с данными пользователей и отправляет на печать. Все работает прекрасно со стандартным API без апрува.
              0
              Для новых приложений не отдает. Только по пользователям внесенным в инвайт лист приложения. Попробуйте зарегестрировать новое приложение и провернуть тоже с его данными доступа.
                0
                Спасибо за информацию. Надо поберечь старые аккаунты )
                  0
                  Ох нет, до июня только старые приложения будут работать ((
                  0
                  Ну да, чуть ниже уже отписали. Возвращает грустное «The access_token provided is invalid»
                    0
                    Что то совсем грустно. С такими правилами апрува, получить на мелкий проект его вряд ли будет возможно (мне всего то нужно печатать фотографии по хэштегу).
                    В принципе если для одного себя получать access_token, то песочница должна подойти. Правда не могу разобрать с ограничениями.
                      0
                      Там урезано количество запросов, но опять же если только для себя, то текущих должно быть достаточно. Ну и самое дурацкое ограничение, по пользователям, ты можешь получить только 20 последних фото, и только тех пользователей которым прислал инвайт в приложение и они подтвердили
                        0
                        Для моих целей немного песочина не подойдет. Мне нужно собирать фотографии по хэштегу. В песочнице я могу только со своего аккаунта их собирать, либо тех кто по инвайту.
                        Пока для себя сделал парсилку www.instagram.com/explore/tags/TAG_NAME оно без авторизации работает, посмотрим что будет дальше )
                          0
                          А мне тут приложение не зааппрувили =) До июля точно будет работать, потом фиг знает.
                          Тоже фотки по хэштегу получаю — instaulsk.ru

                          Отправил на повторную модерацию, может одумаются. Саппорта в инста как такового вообще нет. Такое ощущение что все на автомате работает пока не поломалось. Даже в android-приложении полно багов которые никто фиксить не может и позорное отсутствие приложения для Ipad Mini Retina
                +2
                Отличная идея, сразу захотелось воспользоваться, но… а что если жена спросит про какую-то конкретную фотку, а вы ее даже не видели?
                  +2
                  Это ладно. А если жены всех программистов увидят эту статью и бросятся пытать своих — какие фотки «из вчерашних» ему особо понравились? :)
                  +2
                  Написать приблуду, делающую постинг кучи фоток занятием трудноосуществимым и вообще морально изматывающим было бы продуктивнее.
                  Внезапные обрывы связи, Error 500, Connection timeout, login failed через раз, вот это всё.
                    +1
                    А жена хабр не читает? Вдруг увидит, что муж выкрутился и автоматизировал отношения?
                      +11
                      Вангую скандал из за лайкнутой фотографии сломанного ногтя\каблука. Так что прикручивайте распознование образов)
                        +1
                        Написал аналогичный лайкер для фейсбука на java+selenium. Назвал кукушкой
                          +2
                            0
                            Не читал, но лайкаю.
                              0
                              Вот из-за таких постов я и перестал читать хабр
                                +5
                                Если бы моя жена начала обижаться на меня за то, что я ей что-то там не лайкаю, я бы такого пятизвёздочного леща ей прописал… э-э-эх! Воспитана она больно хорошо.
                                  +4
                                  image
                                  +8
                                  Интересные у вас жены, товарищ:
                                  ...
                                  "instagram_accounts_to_be_liked": ["xenia_sobchak", "volochkova_art"]
                                  ...
                                  
                                    0
                                    xenia_sobchak: господин назначил меня любимой женой!
                                    +6
                                    Зачем это все? ну ей богу… если просто потренироваться что-то пописать/поизучать, то конечно ОК, но как какое то решение это порождает кучу ненужных постов на FB, Инстаграме и прочем… Люди начинают думать, что они действительно постят что-то важное и кому то интересное, вместо этого, на мой взгляд, проще поговорить с человеком или написать комент, что все подряд выкладывать не надо… Если жена обмжается, то автоматизация точно уж не метод — гораздо лучше, опять же на мой взгляд, поговорить с ней… иначе, в конечном итоге, это приведет к еще большим проблемам… А уж если у вас будет баг и вы, вдруг, залайкаете не то, так вообще может быть скандал :)

                                    сугубо ИМХО
                                      0
                                      Ну если мы не будет постить «не нужно», то другие будут постить свое «не нужно». СММщики еще и не так накручивают рекламные посты.
                                      +5
                                      Напомнило: bash.im/quote/436725
                                      xxx: У нас тут YYY (билд инженера) сманили. Чел принципиально жил только в консоли и vim, диаграммы рисовал скриптами в dot, доки писал в wiki маркдауном, если что-либо требовало больше чем 1.5 минуты писал скрипт. Сидим разбираем его наследие.
                                      xxx: Из прекрасного
                                      xxx: smack-my-bitch-up.sh — шлет видимо его жене «Задержался на работе» и генерит отмазки из списка. Поставлено в cron, стреляет после 9 вечера если на рабочей станции висят интерактивные сессии по ssh с его логином.
                                      xxx: kumar-mudak.sh — сканит почту, ищет письма от Кумара (заграничный ДБА с говорящей фамилией) с ключевыми словами (sorry, help и т.д.) откатывает упомянутую базу стейджинга на последний бэкап и отписывается типа не вопрос будь аккуратнее в следующий раз. Зело заколебал его Кумар вестимо.
                                      xxx: badun.sh — поставлен на cron на определенные даты, шлет письма «плохо себя чувствую, поработаю из дома» опять же если к 8-45 утра не обнаружилось интерактивных сессий на рабочей станции.
                                      xxx: И наконец первый приз: coffe-blyat.sh — ждет 17 сек (!!!) логинится по ssh в кофе-машину (епрст, мы и понятия не имели что она в сетке да и еще что на ней sshd поднят) и засылает туда какую-то абракадабру. Экспериментальным путем выяснили что ЭТО запускает процесс варения half-caf chai latte среднего размера, которое начинает выливаться в чашку как раз к тому моменту когда неспеша идущий человек добирается от его офиса до автомата.
                                        +3
                                        Если бы я делал такой скрипт, то использовал бы только phantomjs и запускал код по крону,
                                        нода вообще тут не нужна, и селениум тоже.
                                          0
                                          Я понимаю что заметка про полную автоматизацию, но кажется специально для случаев вроде вашего инстагрм в апп телефона прикрутил уведомления пушем о новых постах, в выбранном профиле.
                                            +1
                                            так все равно — тыкать-то надо )
                                              0
                                              ну да, зато мельком хотя бы увидишь фото, и сможешь выкрутиться, если спросит про содержание фотографий
                                            0
                                            Добрый день, а скрипт ещё поддерживается автором? он ещё работает? Хотелось бы немного усовершенствовать его

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

                                            Самое читаемое