
Для автоматизированного сбора данных о подписчиках Instagram можно использовать Python и библиотеку Instaloader. Она позволяет получать информацию о профилях, включая имена пользователей, идентификаторы и дату последнего обновления аккаунта.
Перед началом работы необходимо создать виртуальное окружение Python и установить библиотеку командой pip install instaloader. Рекомендуется использовать отдельный аккаунт для авторизации, чтобы минимизировать риск блокировок со стороны Instagram.
После установки можно авторизоваться через Instaloader и выгружать список подписчиков конкретного пользователя. Скрипт возвращает данные в формате JSON или CSV, что облегчает дальнейший анализ и фильтрацию по активности, количеству постов и подписок.
Важно учитывать ограничения API Instagram: массовое скачивание информации может привести к временной блокировке. Для снижения риска рекомендуется вводить задержки между запросами и обрабатывать подписчиков по партиям.
Установка и настройка Python для работы с Instagram API

Для работы с Instagram API рекомендуется использовать Python версии 3.10 или выше. Проверить установленную версию можно командой:
python --version
Если Python отсутствует, скачайте последнюю версию с официального сайта python.org и установите, отметив опцию «Add Python to PATH».
Далее создайте виртуальное окружение для проекта:
python -m venv insta_env
source insta_env/bin/activate # Linux/macOS
insta_env\Scripts\activate # Windows
После активации окружения установите необходимые библиотеки:
requests– для отправки HTTP-запросов к API.python-dotenv– для безопасного хранения токенов доступа.instaloader– для скачивания данных профилей и подписчиков (альтернатива официальному API).
pip install requests python-dotenv instaloader
Создайте файл .env в корне проекта для хранения учетных данных:
INSTAGRAM_USERNAME=ваш_логин
INSTAGRAM_PASSWORD=ваш_пароль
ACCESS_TOKEN=ваш_токен
Для работы с официальным Instagram Graph API потребуется зарегистрировать приложение в Facebook Developer, получить App ID и App Secret, а затем сгенерировать долгосрочный Access Token. Токен добавляется в .env для безопасного использования в скриптах.
После этих шагов можно приступать к написанию Python-скриптов для запроса подписчиков и обработки данных. Рекомендуется использовать модуль requests с параметрами timeout и проверкой статуса ответа, чтобы избежать блокировок со стороны Instagram.
Регистрация и получение токена доступа к Instagram

После создания приложения нужно добавить продукт «Instagram Graph API». В настройках продукта выберите пункт «Настройки Instagram Basic Display» и укажите URL перенаправления для OAuth 2.0. Этот URL будет использоваться при получении токена.
Далее необходимо авторизовать пользователя Instagram. Для этого формируется URL запроса с параметрами client_id, redirect_uri, scope и response_type=code. После перехода пользователя по ссылке он даст разрешение на доступ к данным.
По завершении авторизации Instagram вернёт код в URL перенаправления. Этот код используется для запроса долгоживущего токена через POST-запрос к endpoint https://graph.instagram.com/access_token, указывая client_id, client_secret, grant_type и redirect_uri.
Долгоживущий токен действителен 60 дней. Для обновления токена необходимо выполнять GET-запрос к https://graph.instagram.com/refresh_access_token, передавая текущий токен и параметр grant_type=ig_refresh_token.
После получения токена он используется в Python через библиотеку requests для запросов к Instagram Graph API. В заголовке Authorization указывается Bearer <ваш_токен> для получения информации о подписчиках и других данных.
Использование библиотеки `instaloader` для извлечения подписчиков

Библиотека `instaloader` позволяет программно получать списки подписчиков и подписок любого открытого профиля Instagram. Для начала потребуется установить пакет через pip:
pip install instaloader
Основной объект для работы – `Instaloader`. Для извлечения подписчиков необходимо выполнить авторизацию, чтобы обойти ограничения доступа к приватным данным:
import instaloader
L = instaloader.Instaloader()
L.login('username', 'password')
После авторизации можно получить профиль и извлечь список подписчиков:
from instaloader import Profile
profile = Profile.from_username(L.context, 'target_username')
followers = [follower.username for follower in profile.get_followers()]
Рекомендуется сохранять данные в структурированном виде, например, в таблицу CSV:
import csv
with open('followers.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['Username'])
for user in followers:
writer.writerow([user])
Табличное представление полученных подписчиков может выглядеть так:
| № | Username |
|---|---|
| 1 | example_user1 |
| 2 | example_user2 |
| 3 | example_user3 |
При работе с большими аккаунтами полезно использовать генераторы `get_followers()`, которые возвращают объекты по одному, предотвращая перегрузку памяти. Также стоит учитывать лимиты запросов Instagram, добавляя задержки между итерациями.
Для расширенного использования можно фильтровать подписчиков по различным критериям: количество постов, число подписок или наличие определённых ключевых слов в биографии, что позволяет формировать целевые списки для аналитики или маркетинга.
Скрипт для получения списка подписчиков конкретного профиля

Для извлечения подписчиков конкретного аккаунта в Instagram оптимально использовать библиотеку instaloader. Она позволяет авторизоваться и получать данные, недоступные без входа в систему. Начнем с установки:
pip install instaloader
Пример скрипта для получения подписчиков:
import instaloader
L = instaloader.Instaloader()
USERNAME = ‘ваш_логин’
PASSWORD = ‘ваш_пароль’
L.login(USERNAME, PASSWORD)
profile = instaloader.Profile.from_username(L.context, ‘цель_профиля’)
with open(‘followers.txt’, ‘w’, encoding=’utf-8′) as f:
for follower in profile.get_followers():
f.write(follower.username + ‘\n’)
Рекомендации по использованию:
- Для больших аккаунтов используйте обработку пакетами, чтобы избежать блокировки.
- Сохраняйте логин и пароль в переменных окружения вместо хардкода.
- Обрабатывайте исключения instaloader.exceptions.LoginRequiredException и instaloader.exceptions.QueryReturnedNotFoundException, чтобы скрипт не прерывался.
- Файл followers.txt можно использовать для анализа, фильтрации и интеграции с другими инструментами.
Этот подход обеспечивает полный список подписчиков с точными именами пользователей, доступными через API Instagram. Для автоматизации рекомендуется запускать скрипт в cron или с помощью планировщика задач.
Сохранение данных подписчиков в CSV или Excel

После получения списка подписчиков через API или сторонние библиотеки, следующий шаг – структурированное хранение информации. Наиболее удобные форматы – CSV и Excel.
Для сохранения в CSV используйте модуль csv:
import csv
subscribers = [
{"username": "user1", "full_name": "Иван Иванов", "followers": 120},
{"username": "user2", "full_name": "Мария Петрова", "followers": 95}
]
with open('subscribers.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=subscribers[0].keys())
writer.writeheader()
writer.writerows(subscribers)
Этот подход сохраняет заголовки столбцов и корректно обрабатывает кириллицу.
Для сохранения в Excel применяют pandas:
import pandas as pd
df = pd.DataFrame(subscribers)
df.to_excel('subscribers.xlsx', index=False, engine='openpyxl')
Рекомендации при работе с Excel:
- Использовать
engine='openpyxl'для совместимости с современными версиями Excel. - Выключать индекс через
index=Falseдля чистоты таблицы. - Проверять кодировку при экспорте CSV:
encoding='utf-8-sig'иногда необходима для корректного отображения в Excel.
Для больших массивов данных удобно разбивать список подписчиков на чанки, чтобы избежать переполнения памяти и ускорить запись.
Дополнительно можно добавлять столбцы с датой сбора, отметками активности или URL профиля для последующего анализа.
Обработка ошибок и ограничения API Instagram

При работе с Instagram API важно учитывать лимиты запросов. Для Business и Creator аккаунтов лимит составляет 200 запросов в час на один токен доступа. Превышение лимита возвращает ошибку 429 с сообщением «Too Many Requests». Чтобы избежать блокировки, необходимо реализовать паузы между запросами и отслеживать заголовок `X-RateLimit-Remaining`.
Ошибки аутентификации возвращают коды 400 и 401. Для их обработки нужно проверять срок действия токена и при необходимости автоматически обновлять его через OAuth. Если токен истёк или отозван, последующие запросы также будут возвращать 401.
Ошибка 403 возникает при попытке доступа к недоступной информации, например к приватным аккаунтам без разрешения. Решение – проверять поле `is_private` в объекте пользователя и пропускать приватные аккаунты.
Сетевые ошибки и таймауты (код 500, 502, 503, 504) требуют повторной отправки запроса с экспоненциальной задержкой: 1 секунда, 2, 4, 8. После трёх неудачных попыток запрос следует прекратить и зафиксировать в логах.
Для массового получения подписчиков рекомендуется использовать пагинацию через `after` параметр. Каждый ответ содержит максимум 50 пользователей. Игнорирование пагинации приведёт к неполному списку. Логи должны фиксировать последний обработанный курсор, чтобы при сбое можно было продолжить с того же места.
Все исключения лучше централизованно обрабатывать через блок try-except, разделяя ошибки аутентификации, лимитов и сетевые сбои. Это позволит автоматически корректировать паузы и повторные попытки без остановки скрипта.
Ведение подробных логов с отметкой времени, кода ошибки и идентификатора запроса снижает риск пропуска данных и упрощает анализ проблем при изменении API или ограничениях.
Автоматизация обновления списка подписчиков с помощью Python

Для автоматического обновления списка подписчиков используйте библиотеку instaloader. Она позволяет скачивать актуальные данные о подписчиках и сохранять их в формате CSV или JSON.
Пример скрипта для регулярного обновления: импортируйте Instaloader, авторизуйтесь через аккаунт, загрузите профиль и сохраните список подписчиков в файл:
import instaloader
from datetime import datetime
import csv
L = instaloader.Instaloader()
L.login('your_username', 'your_password')
profile = instaloader.Profile.from_username(L.context, 'target_username')
followers = [follower.username for follower in profile.get_followers()]
filename = f"followers_{datetime.today().strftime('%Y%m%d')}.csv"
with open(filename, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['username'])
for user in followers:
writer.writerow([user])
Для автоматизации запуска скрипта используйте планировщик задач ОС. На Windows – Task Scheduler, на Linux/macOS – cron. Настройте запуск, например, ежедневно в 00:00, чтобы список всегда оставался актуальным.
При больших аккаунтах применяйте постраничную обработку подписчиков, чтобы избежать ограничения по количеству запросов. В instaloader это реализуется через итераторы get_followers() и get_followees(), что позволяет обрабатывать по 100–200 пользователей за раз и сохранять прогресс.
Рекомендуется хранить историю изменений в отдельной папке с датированными файлами, что позволит отслеживать прирост или отток подписчиков и строить графики динамики.
Для уведомлений о новых или ушедших подписчиках интегрируйте Python с pandas: сравнивайте текущий CSV с предыдущим и формируйте отчет о разнице, отправляя его на почту или в мессенджер через API.
Вопрос-ответ:
Можно ли скачать всех подписчиков с аккаунта Instagram с помощью Python?
Да, это возможно с помощью специальных библиотек, таких как Instaloader или Instapy. Они позволяют получать список подписчиков публичных аккаунтов или тех, на которые у вас есть доступ. Для работы с закрытыми аккаунтами потребуется авторизация через ваш логин и пароль. Скрипт может сохранять данные в формате CSV или JSON для дальнейшей обработки.
Какие библиотеки Python удобнее использовать для получения подписчиков?
Наиболее популярны Instaloader и Selenium. Instaloader позволяет напрямую получать подписчиков и посты, поддерживает авторизацию и легко сохраняет данные в файлы. Selenium удобен для эмуляции действий в браузере, если нужно обойти ограничения Instagram. Выбор зависит от задач: если нужны только данные подписчиков, Instaloader будет проще, а если требуется сложное взаимодействие с интерфейсом — Selenium подходит больше.
Насколько безопасно использовать Python-скрипты для скачивания подписчиков?
Использование официальных библиотек, таких как Instaloader, считается относительно безопасным, так как они работают через легальные методы авторизации. Однако стоит избегать подозрительных скриптов и сайтов, которые предлагают быстрый способ получить подписчиков за счёт обхода защиты Instagram, так как это может привести к блокировке аккаунта. Также желательно не отправлять свои данные на сторонние серверы.
Как сохранить полученный список подписчиков для дальнейшей работы?
После получения данных через Python их можно сохранить в формате CSV, JSON или Excel. Например, с помощью библиотеки Pandas можно легко конвертировать список подписчиков в таблицу и фильтровать данные, сортировать их или анализировать. Такой подход позволяет удобно работать с большими объёмами информации и использовать её для аналитики или автоматизации других процессов.
