Создание Instagram-бота на Python
Очень многим людям хотелось бы автоматизировать свои задачи в Instagram. Им, безусловно, пригодится эта статья, в которой мы описали создание Instagram-бота на Python при помощи библиотеки Instabot.
Мы видели довольно много пособий по созданию Instagram-ботов, но все они так или иначе использовали библиотеку Selenium. При помощи таких ботов открывается веб-страница и анализируется ее код. Это больше походит на вебскрайпинг с использованием Python.
А наша статья совсем не об этом. Здесь мы создадим настоящий бот. Никакой проверки кода страниц Instagram (как это делают библиотеки selenium или beautiful soup) производится не будет.
Оглавление
- Установка библиотеки INSTABOT-PY
- Что наш Instagram-бот может делать?
- Написание кода
- Вход в Instagram аккаунт
- Получаем список подписчиков
- Загружаем фото при помощи Instarram-бота
- Заключение
Установка библиотеки INSTABOT-PY
В данной статье для создания Instagram-бота мы используем язык программирования Python 3.
Начнем с установки необходимой нам библиотеки при помощи команды pip.
# For Mac and Linux Users pip3 install instabot-py # For Windows Users pip install instabot-py
Эта команда установит библиотеку из репозитория PyPi.
Если вы хотите использовать исходный код из репозитория GitHub, то можно использовать следующую команду:
pip3 install git+https://github.com/instabot-py/instabot.py
Что наш Instagram-бот может делать?
Как уже говорилось выше, наш бот будет отличаться от ботов с логикой Selenium или Beautiful Soup, которая основана на вебскрейпинге. Наш бот сможет:
- входить в аккаунт Instagram;
- просматривать подписчиков и те аккаунты, на которые подписаны вы;
- ставить лайки фото или видео;
- подписываться на аккаунты или отписываться от них;
- создавать комментарии и просматривать их.
Instabot — реально крутая библиотека. За более подробной информацией вы можете обратиться к ее документации.
Марк Лутц «Изучаем Python»
Скачивайте книгу у нас в телеграм
Скачать ×
Написание кода
Все это конечно звучит внушительно, но давайте не будем вдаваться в теоретические детали и сразу перейдем к кодингу. И вы наверно будете удивлены, что мы сможем написать бота в четыре строчки кода.
Вход в Instagram
Мы начнем с импорта необходимой функции и после этого осуществим вход.
from instabot import Bot bot = Bot() bot.login(username="instacodeblog", password="MY_SECTRET_PASSWORD_HERE")
Запустив этот код, вы увидите в терминале следующий результат:
2021-01-13 22:17:14,366 - INFO - Instabot version: 0.117.0 Started 2021-01-13 22:17:14,367 - INFO - Recovery from <PATH_TO_YOUR_PROJECT/config/instacodeblog_uuid_and_cookie.json: COOKIE True - UUIDs True - TIMING, DEVICE and ... - user-agent=Instagram 117.0.0.28.xxx Android (28/9.0; 420dpi; 1080x1920; OnePlus; ONEPLUS A3003; OnePlus3; qcom; en_US; 180xxx800) - phone_id=8f9xx80d-b0de-4ec1-9590-6280xxx34cf7 - uuid=22b5xx51-96bb-43b4-8ad1-b20c89dfxxxe - client_session_id=79bxx5b2-c73d-4fe7-b5eb-f05c7xxxxx8c - device_id=android-285xx1afebxxxbba 2021-01-13 22:17:14,368 - INFO - LOGIN FLOW! Just logged-in: False 2021-01-13 22:17:17,656 - INFO - Logged-in successfully as 'instacodeblog'! 2021-01-13 22:17:17,658 - INFO - Total requests: 49
Мы видим, что в этом результате все в порядке. Бот имитирует реальное устройство и производит вход. Видно, что логин был успешным.
Вы также можете видеть созданный каталог по имени config/. Там сохранена вся информация логов. Это поможет вам в отладке процесса.
Получаем подписчиков
Теперь давайте изменим приведенный выше код, чтобы получить список подписчиков. Все, что для этого нужно сделать, это добавить одну строку кода:
from instabot import Bot bot = Bot() bot.login(username="instacodeblog", password="MY_SECTRET_PASSWORD_HERE") bot.get_user_followers('instacodeblog')
Теперь запустим данный код и получим следующий результат:
2021-01-13 22:17:17,366 - INFO - Instabot version: 0.117.0 Started 2021-01-13 22:17:17,367 - INFO - Recovery from <PATH_TO_YOUR_PROJECT/config/instacodeblog_uuid_and_cookie.json: COOKIE True - UUIDs True - TIMING, DEVICE and ... - user-agent=Instagram 117.0.0.28.xxx Android (28/9.0; 420dpi; 1080x1920; OnePlus; ONEPLUS A3003; OnePlus3; qcom; en_US; 180xxx800) - phone_id=8f9xx80d-b0de-4ec1-9590-6280xxx34cf7 - uuid=22b5xx51-96bb-43b4-8ad1-b20c89dfxxxe - client_session_id=79bxx5b2-c73d-4fe7-b5eb-f05c7xxxxx8c - device_id=android-285xx1afebxxxbba 2021-01-13 22:17:17,368 - INFO - LOGIN FLOW! Just logged-in: False 2021-01-13 22:17:17,656 - INFO - Logged-in successfully as 'instacodeblog'! Getting followers of 45038783390: 100%|███| 29/29 [00:01<00:00, 28.00it/s] 2021-01-13 22:17:17,658 - INFO - Total requests: 49
По сравнению с предыдущим результатом тут есть одна дополнительная строчка. Она показывает количество подписчиков у данной учетной записи Instagram (id #45038783390).
К сожалению, их всего 29.
Загружаем фото при помощи Instagram-бота
Пойдем дальше и выполним еще одну задачу. Давайте заставим нашего бота загрузить фото вместе с какой-нибудь классной подписью. В подпись мы добавим хэштег.
Мы снова изменим приведенный выше изначальный код, добавив в него опять только одну строку.
Это реально настоящая автоматизация, вы можете увидеть этот пост в Instagram и поставить ему лайк.
from instabot import Bot bot = Bot() bot.login(username="instacodeblog", password="MY_SECTRET_PASSWORD_HERE") bot.upload_photo( 'Instagram_bot.jpg', caption='Create Instagram Bot in Python 3 using instabot-py Library. \n This Post is uploaded by the bot. You can check my blog for how to perform the task. \n\n #instacodeblog #instagrambot #instabot #bot #python #pythonproject #programming #fun')
Что ж, сделано. Вот и все, что нужно, чтобы загрузить фото в личный кабинет при помощи бота. Теперь вы можете планировать и автоматизировать ваши текущие задачи. Это будет отлично работать.
Результат в терминале будет иметь следующий вид:
2021-01-13 22:56:22,366 - INFO - Instabot version: 0.117.0 Started 2021-01-13 22:56:22,367 - INFO - Recovery from <PATH_TO_YOUR_PROJECT/config/instacodeblog_uuid_and_cookie.json: COOKIE True - UUIDs True - TIMING, DEVICE and ... - user-agent=Instagram 117.0.0.28.xxx Android (28/9.0; 420dpi; 1080x1920; OnePlus; ONEPLUS A3003; OnePlus3; qcom; en_US; 180xxx800) - phone_id=8f9xx80d-b0de-4ec1-9590-6280xxx34cf7 - uuid=22b5xx51-96bb-43b4-8ad1-b20c89dfxxxe - client_session_id=79bxx5b2-c73d-4fe7-b5eb-f05c7xxxxx8c - device_id=android-285xx1afebxxxbba 2021-01-13 22:56:22,368 - INFO - LOGIN FLOW! Just logged-in: False 2021-01-13 22:56:22,656 - INFO - Logged-in successfully as 'instacodeblog'! FOUND: w:717 h:717 r:1.0 2021-01-13 22:56:22,691 - INFO - Photo 'Instagram_bot.jpg' is uploaded. 2021-01-13 22:56:22,693 - INFO - Total requests: 63
Убедитесь, что ваше изображение квадратного размера. Также, в данном случае изображение находится в том же каталоге, что и файл с кодом.
От редакции Pythonist. Также рекомендуем статьи:
- Создание Telegram бота на Python для признаний в любви
- Бот для Instagram на Python
- Telegram бот на Python для генерации случайных цитат
Заключение
Мы только что узнали, как создавать настоящие, мощные и классные Instagram-боты на Python 3 при помощи библиотеки instabot-py. Мы увидели, как с помощью данных ботов можно входить в аккаунт, смотреть количество подписчиков и загружать фото в Instagram.
Перевод статьи «INSTAGRAM BOT IN PYTHON 3 USING INSTABOT-PY LIBRARY«.
- 1 views
- 0 Comment
Свежие комментарии