Очень многим людям хотелось бы автоматизировать свои задачи в Instagram. Им, безусловно, пригодится эта статья, в которой мы описали создание Instagram-бота на Python при помощи библиотеки Instabot.
Мы видели довольно много пособий по созданию Instagram-ботов, но все они так или иначе использовали библиотеку Selenium. При помощи таких ботов открывается веб-страница и анализируется ее код. Это больше походит на вебскрайпинг с использованием Python.
А наша статья совсем не об этом. Здесь мы создадим настоящий бот. Никакой проверки кода страниц Instagram (как это делают библиотеки selenium или beautiful soup) производиться не будет.
В данной статье для создания 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
Как уже говорилось выше, наш бот будет отличаться от ботов с логикой Selenium или Beautiful Soup, которая основана на вебскрейпинге. Наш бот сможет:
Instabot — реально крутая библиотека. За более подробной информацией вы можете обратиться к ее документации.
[python_ad_block]Все это конечно звучит внушительно, но давайте не будем вдаваться в теоретические детали и сразу перейдем к кодингу. И вы наверно будете удивлены, что мы сможем написать бота в четыре строчки кода.
Мы начнем с импорта необходимой функции и после этого осуществим вход.
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 и поставить ему лайк.
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. Также рекомендуем статьи:
Мы только что узнали, как создавать настоящие, мощные и классные Instagram-боты на Python 3 при помощи библиотеки instabot-py
. Мы увидели, как с помощью данных ботов можно входить в аккаунт, смотреть количество подписчиков и загружать фото в Instagram.
Перевод статьи «INSTAGRAM BOT IN PYTHON 3 USING INSTABOT-PY LIBRARY«.
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…
В этой статье мы рассмотрим, что такое подсказки типов и чем они могут быть полезны.…