Пишем Инстаграм бота на Python для раскрутки профиля.
Это первая часть из нашего цикла по автоматизации и раскрутки инстаграм аккаунта на Python.
В этой статье мы узнаем, как создать бота для Instagram с помощью Python и InstaBot.
В наши дни боты очень распространены, чтобы отправлять сообщения, загружать фотографии, для рекламы и многого другого. Боты помогают нам в работе и экономят время. Сегодня мы создаем бота Instagram, который может делать следующие вещи.
@python_job_interview – бесплатная подготовка к собеседованию Python в одном канале.
Функции, которые выполняет бот
– Подписка на одного или нескольких друзей.
– Отписаться от одного или списка людей.
– Отписаться от всех.
– Вывести количество подписчиков любого пользователя.
– Отправка сообщения подписчикам или списку подписчиков.
– Отправить лайк в чат.
– Разместить фотографии; Скачать Reels
Библиотека Instabot: это скрипт и обертка API Python для Instagram.
pip install instabot
Авторизоваться
Перед выполнением любой из функций) нам нужно сначала импортировать библиотеку instabot и войти в систему.
Import instabot library
from instabot import Bot
# Create a variable bot.
bot = Bot()
# Login
bot.login(username="your_userid",
password="your_password")
Подписка
Чтобы подписаться на одного друга, мы можем использовать функцию follow().
from instabot import Bot bot =Bot() bot.login(username="ваш логин",password="ваш пароль") person.bot.follow("pythonl") |
Чтобы подписаться на много аккаунтов, нам нужно сначала составить список имен пользователей, а затем использовать функцию «follow_users».
from instabot import Bot
bot = Bot()
bot.login(username="ваш логин",password="ваш пароль")
# подписаться
list_of_user = ["user_id1", "user_id2", "user_id3", "...."]
bot.follow_users(list_of_user)
Отписаться
Чтобы отписаться от одного человека, мы будем использовать функцию unfollow().
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# To unfollow a single person.
bot.unfollow("pythonl")
from instabot import Bot
bot = Bot()
bot.login(username = "your_username",
password = "your_password")
# To unfollow more person.
unfollow_list = ["user_id1", "user_id2", "user_id3", "..."]
bot.unfollow_users(unfollow_list)
Отписаться от всех
Здесь мы будем использовать функцию unfollow_everyone(), чтобы отписаться от всех в наших аккаунтах.
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Unfollow everyone!
# To unfollow everyone use:
# Please use this part very carefully.
bot.unfollow_everyone()
Подсчитайте количество подписчиков
Мы можем проверить количество наших собственных подписчиков или любых других подписчиков, используя функцию «get_user_followers».
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Count number of followers
followers = bot.get_user_followers("geeks_for_geeks")
print("Total number of followers:")
print(len(followers))
Отправка сообщений
Отправить сообщение одному человеку просто с помощью функции send_message().
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Message
# To send message to a single person.
message = "I like GFG"
bot.send_message(message, "geeks_for_geeks")
Код, чтобы отправить одно и то же сообщение многим людям:
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Message
# To send same message to many follower.
message = "I like GFG"
list_of_userid = ["user_id1", "user_id2", "user_id3", "..."]
bot.send_messages(message, list_of_userid)
Ставим лайк сообщения
Чтобы отправить лайк, создайте список пользователей, а затем используйте функцию «send_like». Бот рассылает лайки друзьям по списку в чате.
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Send like in messages
# To send like to one or more person.
send_like_list = ["user_id1", "user_id2", "user_id3", "..."]
bot.send_like(send_like_list)
Опубликовать фото
Чтобы разместить фотографии в Instagram, нам нужно проверить, соответствует ли фотография заданному соотношению. Если фото не в заданном соотношении, нам нужно изменить его размер. Самое простое соотношение 1:1.
from instabot import Bot
bot = Bot()
bot.login(username="your_username",
password="your_password")
# Post photos
# Photos need be resized and, if not in ratio given below.
# jpg format works more better than others formats.
# Acceptable Ratio of image:- 90:47, 4:5, 1:1(square image).
# Keep image and program in same folder.
# -----------------------------------------------------------
bot.upload_photo("filename.jpg", caption="Write caption here.")
Загружаем Reels с инстаграмма, с помощью Python.
Чтобы загрузить Reels из Instagram, сначала импортируйте все необходимые библиотеки. В нашем примере мы импортируем модуль time, потому что при сохранении файла мы будем объединять время с именем файла, чтобы избежать конфликта имен. Нужно будет добавьте идентификатор сеанса и заголовки. Идентификатор сеанса действителен до тех пор, пока вы не выйдете из системы. поэтому, когда вы будете заходить в следующий раз, вам снова нужно будет передать новый идентификатор сеанса. (Вы получите свой идентификатор сеанса в хранилище сеансов, проверив страницу). Собирать данные напрямую из-за обновленных правил Instagram не так просто, поэтому нам нужно передать идентификатор сеанса в заголовки. Используя модуль Reel и указав место загрузки, мы можем сделать эту непростую работу.
pip install insta-scrape
nsta_reel=Reel(‘instagram link’)
insta_reel.scrape(headers=headers)
insta_reel.download(download_path.mp4″)
from instascrape import Reel
import time
# session id
SESSIONID = "Paste session Id Here"
# Header with session id
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.74 \
Safari/537.36 Edg/79.0.309.43",
"cookie": f'sessionid={SESSIONID};'
}
# Passing Instagram reel link as argument in Reel Module
insta_reel = Reel(
'https://www.instagram.com/reel/CKWDdesgv2l/?utm_source=ig_web_copy_link')
# Using scrape function and passing the headers
insta_reel.scrape(headers=headers)
# Giving path where we want to download reel to the
# download function
insta_reel.download(fp=f".\\Desktop\\reel{int(time.time())}.mp4")
# printing success Message
print('Downloaded Successfully.')