Share This
Связаться со мной
Крути в низ
Categories
//Бот для Instagram на Python

Бот для Instagram на Python

31.10.2021Category : Python

Instagram – самое удобное приложение для общения в социальных сетях в наше время. В силу его популярности там ежесекундно сохраняется множество данных. Все слышали об Instagram. Он помогает нам охватить большую аудиторию, получить больше подписчиков и лайков. Но вы хотя бы пальцем пошевелили, чтобы автоматизировать процессы? В этой статье мы вам расскажем, как написать бот для Instagram на Python, с применением Instagram API и опенсорс-модуля InstaPy.

bot dlja instagram na python f1cd7b3 - Бот для Instagram на Python

В этом руководстве вы узнаете:

  • как работают Instagram-боты
  • особенности модуля InstaPy
  • как создать бот для Instagram с помощью InstaPy

Установка

В вашей операционной системе должна быть установлена ​​последняя версия Python. Установив или обновив ее, выполните следующую команду в командной строке:

pip install instapy

Основы InstaPy

Для начала давайте рассмотрим, как войти в Instagram с помощью модуля InstaPy.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()

Первым шагом всегда является импорт модуля. Затем мы реализуем класс Instapy(), в который передаем параметры учетных данных. В следующей строке метод session.login() будет использовать API Instagram для входа в систему. После запуска программы вы увидите открытое окно браузера, в котором произойдет программный вход в Instagram.

bot dlja instagram na python 3cdb08a - Бот для Instagram на Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

Особенности InstaPy

В InstaPy есть множество полезных функций, некоторые из которых мы обсудим в этой статье. Вот список возможностей данной библиотеки:

  • комментирование
  • подписка
  • отписка
  • размещение альбома
  • размещение видео
  • лайки

Лайки

С помощью специальных методов в Instagram можно лайкнуть что-нибудь. У InstaPy есть 3 способа поставить лайк.

Лайки по тегу

Метод лайка по тегу like_by_tags() принимает два аргумента. Первый должен быть в форме списка тегов, по которым мы хотим поставить лайк. Второй – количество лайков. Бот будет искать заданные теги в Instagram и ставить лайки посту, который он нашел в окне результатов.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login() #like by Tag session.like_by_tags(["cars", "Ferari"], amount=10)

Лайки по местоположению

У модуля InstaPy есть метод с названием like_by_location(). Как и предыдущий, он принимает в качестве параметров 2 аргумента. Один – это строковый аргумент местоположения, а второй – количество сообщений, которым вы хотите поставить лайк.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  session.like_by_locations(['224442573/salton-sea/'], amount=10)

Лайки по ленте

Метод лайков по ленте используется для того, чтобы ставить лайки на ваши собственные публикации в ленте. Метод like_by_feed() принимает 4 аргумента.

Первый — количество сообщений. Второй — randomize (принимает значения True или False). Если этот аргумент равен True, то лайки постам вашей ленты выставляются рандомно. Третий аргумент – unfollow (принимает значение True или False). Он отменяет подписку на автора сообщения, которое было рассмотрено. И последний – аргумент interact, также принимающий значение True или False. Если аргумент равен True, метод посещает страницу профиля автора определенного сообщения и лайкает определенное количество его фотографий, а затем возвращается в ленту.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  session.like_by_feed(amount=100, randomize=True, unfollow=True, interact=True)

Подписка

У InstaPy есть методы подписки, которые можно использовать, чтобы подписаться на пользователей в Instagram. Данный метод делится на подметоды со множеством функций отслеживания. Давайте рассмотрим все по порядку.

Подписка по тегу

Функция follow_by_tag() служит для подписки на пользователей на основе хэштегов. Лайки она не ставит. Эта функция полезна, когда вы хотите подписаться на пользователей с определенными интересами. Метод follow_by_tags() принимает два аргумента в качестве параметров: список строк (теги) и количество.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #follow by tag session.follow_by_tags(['hashtag1', 'hashtag2', 'hashtag3'], amount=5)

Подписка по списку

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

Метод follow_by_list() принимает 4 аргумента в качестве параметров: строковый список пользователей, время, sleep_delay и interacts (принимает значения True или False). Последний аргумент будет полезен для точного таргетинга.

Метод подписывается на пользователя только один раз (если отписаться снова).

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

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

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #follow by list session.follow_by_list(['hardy', 'keenu'], times=1, sleep_delay=600, interact=False)

Подписка на чьих-то подписчиков

InstaPy предоставляет нам функцию, с помощью которой наш бот может следить за подписчиками нашего пользователя. Имя данного метода – follow_user_followers(). Он принимает 4 аргумента в качестве параметров: строковый список имен подписчиков, amount, randomize и interact. Благодаря параметру randomize подписка на фолловеров пользователя будет осуществляться рандомно.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #follow by followers session.follow_user_followers(['follower1', 'follower2'], amount=10, randomize=False, interact=True) 

Подписка на пользователей, которые поставили лайк посту

Данный метод follow_likers() будет подписываться на людей, которые лайкнули фотографии определенного списка пользователей.

Для этого метода требуется 5 аргументов. photo_grab_amount – количество фотографий, которые берутся из профиля пользователя для анализа лайкнувших.

follow_likers_per_photo – количество людей, на которых нужно подписаться, для каждой фотографии.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #follow by likers session.follow_likers (['user1' , 'user2'], photos_grab_amount = 2, follow_likers_per_photo = 3, randomize=True, sleep_delay=600, interact=False) 

Подписка на пользователей, которые оставили комментарий

Метод follow_commenters() будет следить за людьми, которые прокомментировали фотографии определенного списка пользователей. Тут нам потребуется уже 6 аргументов, однако многие из них вам уже знакомы. Аргумент daysold будет брать комментаторов только с фотографий не старше указанного количества дней давности. Аргумент max_pic, в свою очередь, ограничивает количество фотографий для анализа.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #follow commenters session.follow_commenters(['commenter1', 'commenter2'], amount=100, daysold=365, max_pic = 100, sleep_delay=600, interact=False) 

Отписка

Поскольку мы уже обсудили множество способов подписаться на пользователей в Instagram, пришло время обсудить, как нашему боту отписаться от пользователей. В коде, приведенном ниже, мы используем для отписки метод unfollow_user(), который принимает 5 аргументов.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #Unfollow custom_list = ["user_1", "user_2", "user_3"] session.unfollow_users(amount=10, customList=(True, custom_list, "all"), style="RANDOM", unfollow_after=55*60*60, sleep_delay=600) 

Отписаться от пользователей, которые не подписаны на вас

Используя данный метод, ваш бот отменит подписку на пользователей, которые не подписываются на вас в ответ. Это будет полезно для отмены подписки на пользователей, на которых вы подписаны, но они почему-то не подписались на вас.

Аргумент unfollow_after заставит нашего бота отписаться от пользователя, который не подписался на вас за указанное время.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #Unfollow the back followers session.unfollow_users(amount=20, nonFollowers=True, style="RANDOM", unfollow_after=42*60*60, sleep_delay=600) 

Отписка от любого пользователя

Этот метод можно использовать для отмены подписки на пользователя, независимо от того, подписан ли пользователь на вас.

Метод unfollow_users() принимает 5 аргументов. Аргумент unfollow_after используется, чтобы сообщить боту, через сколько минут или часов нужно отменить подписку.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #Unfollow the users session.unfollow_users(amount=40, allFollowing=True, style="LIFO", unfollow_after=3*60*60, sleep_delay=450)

Важные особенности библиотеки InstaPy

Мы обсудили основные функции ботов Instagram. Однако InstaPy не ограничивается этими функциями, у нее есть некоторые дополнительные функции, которые тоже могут быть полезны. Например:

  • умные хэштеги
  • игнорирование пользователей
  • игнорирование по ограничению
  • исключение друзей

Итак, давайте приступим!

Умные хэштеги

С помощью метода set_smart_hashtags() можно генерировать умные хэштеги на основе рейтинга https://displaypurposes.com. В результате отфильтровываются забаненные хэштеги и спам-теги. После вы можете использовать полученные «умные» хэштеги, чтобы лайкать и комментировать сообщения.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #Smart hashtags session.set_smart_hashtags(['cycling', 'roadbike'], limit=3, sort='top', log_tags=True) session.like_by_tags(amount=10, use_smart_hashtags=True)

Игнорирование пользователей

Этот метод позволит полностью игнорировать пользователей: бот не будет лайкать их изображения, подписываться на них или даже комментировать их посты. Метод set_ignore_users() принимает в качестве аргумента список, который содержит ники пользователей в виде строк. Как следствие, эти пользователи и будут игнорироваться.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #ignore user session.set_ignore_users(['user1', 'user2'])

Игнорирование по ограничению

Данный метод позволит игнорировать посты, в которых есть переданные в метод слова. Метод set_ignore_if_contains() проверит, есть ли в изображениях/видео какие-либо слова, похожие на заданные. Если таковые встречаются, данный пост будет проигнорирован – его не будут лайкать или оставлять комментарий.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #ignore restriction session.set_ignore_if_contains(['gun', 'burger', 'flower'])

Исключение друзей

С помощью бота вы можете отписаться от друзей в Instagram, но он по-прежнему будет лайкать их посты. Чтобы избежать этого, как раз и нужен метод set_dont_include(). Он принимает список имен пользователей в строковом формате в качестве аргумента.

from instapy import InstaPy  #login credentials insta_username = '' insta_password = ''  #login session session = InstaPy(username=insta_username, password=insta_password) session.login()  #exclude friends session.set_dont_include(['friend1', 'friend2'])

Заключение

Итак, мы разобрали, как написать бот для Instagram на Python. Мы рассмотрели большинство функций InstaPy, однако путешествие по Instagram-ботам на этом не заканчивается. О других доступных функциях можно почитать в официальной документации InstaPy. Эта статья просто дает вам общее понимание работы модуля InstaPy. Кроме того, каждый из вас может изменить эти методы и добавить новые, чтобы создать своего собственного бота для Instagram.

Надеемся, эта статья оказалась для вас полезной. Успехов в написании кода!

Перевод статьи «Build an Instagram Bot with Python».

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close