Получения списка подписчиков Instagram
Здравствуйте. Передо мной стоит задача, получить информацию о подписчиках заданных пользователей инстаграм, конечно, по возможности. Посмотрев доки Instagram Api нашел, что только для текущего пользователя, под которым залогинены можно получить список подписчиков: https://api.instagram.com/v1/users/self/follows?access_token=ACCESS-TOKEN Подобная конструкция не работает: https://api.instagram.com/v1/users//follows?access_token=ACCESS-TOKEN Вопрос о получение полноценного доступа к апишкам пропускается. Как это можно сделать, возможно не через api? Спасибо за помощь.
Отслеживать
задан 22 июн 2016 в 7:51
user2572457 user2572457
83 1 1 серебряный знак 7 7 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Да, это возможно.
Например, есть пример бота на Python’e для Instagram’a.
В нём используется файл userinfo.py — для получения списка подписчиков не через API в обход через http://ink361.com :
сначала получаем юзера через
ui.search_user(user_name="danbilzerian")
Затем с помощью этих строк на Pythone происходит получение первых 10 подписчиков этого юзера, а затем вывод их ников:
ui.get_followers(limit=10) print(ui.followers)
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Парсер аккаунтов подписчиков и подписок в Instagram на основе прокрутки списков
License
leoneedpro/instagram-parser
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
4f0df50 Apr 18, 2022
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
March 20, 2017 08:51
April 18, 2022 18:19
October 19, 2021 16:56
September 2, 2020 22:59
README.md
Парсер аккаунтов подписчиков и подписок в Instagram (followers-parser.js)
Парсер активной аудитории (лайки) Instagram (likes-parser.js)
Поддержать развитие проекта:
Как использовать парсер подписчиков и подписок:
- Заходим в web-браузере http://instagram.com и авторизуемся
- Выбираем интересующий аккаунт с подписчиками и подписками
- Нажимаем на просмотр подписчиков и подписок
- Нажимаем сочетание клавиш (CTRL-SHIFT-J , по умолчанию в браузере Google Chrome)
- В открывшуюся консоль браузера, копируем и вставляем код скрипта instagram-parser.js
- Нажимаем клавишу ENTER и процесс парсинга подписчиков запущен!
- После окончания работы скрипта, станет доступен список имен аккаунтов подписчиков
Изменения и новый функционал (2019):
- Изменил код прокрутки — теперь без остановки проходит «Рекомендуемое»
- Теперь можно задавать кол-во аккаунтов для сбора (строка кода 26)
- Добавил возможность собирать помимо логинов, ещё и имена аккаунтов (строка кода 30)
- Добавил возможность изменять скорость сбора (строка кода 20)
Видео пример работы:

Подписывайтесь, ставьте лайки, до новых встреч!✌️
About
Парсер аккаунтов подписчиков и подписок в Instagram на основе прокрутки списков
Как получить данные из Instagram с помощью Python — Парсинг Инстаграм

Instagram — одна из самых популярных социальных сетей с миллиардами пользователей. Парсинг Инстаграм имеет огромную ценность для компаний, маркетологов и частных лиц. Любой может использовать эти данные для анализа данных, целевого маркетинга и получения информации.
Вы можете использовать Python для создания автоматизированного инструмента, который извлекает данные из Instagram. И в этом поможет удивительная библиотека Instaloader
Установка необходимых библиотек
Instaloader — это библиотека Python, которую вы можете использовать для извлечения общедоступных данных из Instagram. Вы можете получить доступ к данным, таким как изображения, видео, имя пользователя, количество постов, количество подписчиков, биографию и т. д. Обратите внимание, что Instaloader никоим образом не связан, не авторизован и не поддерживается Instagram.
Чтобы установить instaloader через pip, выполните следующую команду:
pip install instaloader
Далее вам нужно установить библиотеку Pandas.
Pandas — это библиотека Python, которая в основном используется для обработки и анализа данных. Выполните следующую команду, чтобы установить ее:
pip install pandas
Теперь вы готовы приступить к настройке кода и извлечению данных из Instagram.
Парсинг Инстаграм — Настройка кода
Чтобы настроить инструмент получения данных из Instagram, вам необходимо импортировать библиотеку Instaloader Python и создать экземпляр класса Instaloader. После этого вам нужно предоставить дескриптор Instagram профиля, из которого вы хотите извлечь данные.
import instaloader
# Creating an instance of the Instaloader class
bot = instaloader . Instaloader ( )
# Loading the profile from an Instagram handle
profile = instaloader . Profile . from_username ( bot . context , ‘cristiano’ )
print ( profile )
Это хороший первый шаг, чтобы проверить основы работы. Вы должны увидеть некоторые значимые данные без ошибок:
Извлечение данных из профиля
Вы можете извлечь общедоступные данные, такие как имя пользователя, количество сообщений, количество подписчиков, количество подписок, биографию, идентификатор пользователя и внешний URL-адрес с помощью Instaloader. Вам нужно только предоставить дескриптор Instagram профиля.
Больше статей: TikTok Autoposter — автоматическая публикация видео в ТикТок
import instaloader
import pandas as pd
# Creating an instance of the Instaloader class
bot = instaloader . Instaloader ( )
# Loading a profile from an Instagram handle
profile = instaloader . Profile . from_username ( bot . context , ‘leomessi’ )
print ( «Username: » , profile . username )
print ( «User ID: » , profile . userid )
print ( «Number of Posts: » , profile . mediacount )
print ( «Followers Count: » , profile . followers )
print ( «Following Count: » , profile . followees )
print ( «Bio: » , profile . biography )
print ( «External URL: » , profile . external_url )
Вы должны увидеть много информации о профиле из указанного вами дескриптора:

Извлечение электронных писем из биографии
Вы можете извлечь адреса электронной почты из биографии Instagram любого профиля, используя регулярные выражения. Вам нужно импортировать библиотеку Python re и передать регулярное выражение для проверки электронной почты в качестве параметра методу re.findall():
import instaloader
# Creating an instance of Instaloader class
bot = instaloader . Instaloader ( )
profile = instaloader . Profile . from_username ( bot . context , «wealth» )
print ( «Username: » , profile . username )
print ( «Bio: » , profile . biography )
emails = re . findall ( r «\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]<2,>\b» , profile . biography )2,>
print ( «Emails extracted from the bio:» )
print ( emails )
Скрипт напечатает все, что он распознает как адрес электронной почты в биографии:
Извлечение данных о лучших результатах поиска
Когда вы ищете что-либо в Instagram, вы получаете несколько результатов, включая имена пользователей и хэштеги. Вы можете извлечь лучшие результаты поиска, используя методы get_profiles() и get_hashtags(). Вам нужно только указать поисковый запрос в методе instaloader.TopSearchResults(). Кроме того, вы можете повторять и печатать/сохранять отдельные результаты.
import instaloader
# Creating an instance of the Instaloader class
bot = instaloader . Instaloader ( )
# Provide the search query here
search_results = instaloader . TopSearchResults ( bot . context , ‘music’ )
# Iterating over the extracted usernames
for username in search_results . get_profiles ( ) :
print ( username )
# Iterating over the extracted hashtags
for hashtag in search_results . get_hashtags ( ) :
print ( hashtag )
Больше статей: Автоматический подписчик в Instagram – Instagram Auto Follower
Извлечение подписчиков и подписчиков учетной записи
Вы можете извлечь подписчиков учетной записи и тех, на кого он подписан. Для этого нужно будет залогиниться, поэтому укажитедет свои логин и пароль, чтобы получить эти данные.
Внимение:
Никогда не используйте свои личные учетные записи для извлечения данных из Instagram, так как это может привести к временной или постоянной блокировке вашей учетной записи.
После создания экземпляра класса Instaloader вам необходимо указать свое имя пользователя и пароль. Это делается для того, чтобы бот мог войти в Instagram, используя вашу учетную запись, и получить данные о подписчиках и подписках.
Затем вам нужно предоставить дескриптор Instagram целевого профиля. Методы get_followers() и get_followees() извлекают подписчиков и подписчиков. Вы можете получить имена пользователей подписчиков и подписчиков, используя свойства follower.username и Followee.username соответственно.
Если вы хотите сохранить результаты в файле CSV, вам сначала нужно преобразовать данные в объект Pandas DataFrame. Используйте метод pd.DataFrame() для преобразования объекта списка в DataFrame.
Наконец, вы можете экспортировать объект DataFrame в файл CSV, используя метод to_csv(). Вам необходимо передать имя файла.csv в качестве параметра этому методу, чтобы получить экспортированные данные в формате файла CSV.
Внимение:
Только владельцы аккаунтов могут видеть всех подписчиков и подписчиков. Вы не сможете извлечь все данные о подписчиках и подписках, используя этот или любой другой метод.
Парсинг постов и их статистики в Instagram при помощи кода на Python
Внимание! На данный момент страница проекта на GitHub удалена, а инструменты для вытаскивания ID аккаунтов, описанные в статье, не работают. Сама библиотека еще работает, но ее работу нужно изучать.
Небольшие аккаунты в районе 1000-2000 постов собираются быстро, как раньше, и без видимых усилий.
Скачать библиотеку Instagram-API-python вы можете по ссылкам ниже. Соответственно, та часть инструкции, которая касается скачивания библиотеки из GitHub более не актуальна, просто разархивируйте скачанный файл, при помощи CD войдите в получившуюся директорию, установите, и продолжайте инструкцию с этого момента.
UPDATE 06.09.2020 — Как самостоятельно получить ID аккаунта в Instagram

- Открываем страницу нужным аккаунтом в Google Chrome.
- Щелкаем правой кнопкой, просмотреть код страницы. (F12 на Windows; ⌥+⌘+i на Mac OS)
- Там переключаемся в консоль (Console) при помощи кнопки внизу, и вводим в консоли window._sharedData.config.viewerId
- Нажимаем Enter
- Если получили ошибку — перезагружаем страницу.
- На выходе получаем ID аккаунта, можно вставлять в код парсера и парсить!
Для начала — немного об использовании официального API от Instagram. С 15 октября 2019 года регистрация новых клиентов через Instagram Developer прекращена, и не предвидится. Если вы успели зарегистрироваться раньше — доступ еще есть, но вам потребуется получить расширенные права через подтверждение приложения. Без них вы сможете скачать данные только по 20 последним публикациям, не более. Если не зарегистрированы, вам доступен API Instagram Basic Display. О его возможностях можно почитать по ссылке. Факт в том, что официальный API требует подтверждения вас, как доверенного лица от Instagram.
Этих проблем позволяет избежать использование неофициальных API. И самый популярный из них — упомянутый выше Instagram-API-python от LevPasha. API написан на Python, так что для взаимодействия с ним мы так же будем использовать Python.
В разделе Examples на GitHub LevPasha можно найти примеры кода для загрузки контента в инсту, для массового удаления своего контента, и еще много полезных фич. Советую ознакомиться.
Покончили с прелюдией, начинаем.
Подготовка
Вам потребуется установленный язык Python на вашей системе. Так как в своей работе я использую язык R и Python для анализа данных, то рекомендую Anaconda — дистрибутив языков программирования Python и R, включающий набор популярных свободных библиотек, объединённых темой науки о данных и машинного обучения. Дистрибутив скачивается единожды, и вся последующая конфигурация, в том числе установка дополнительных модулей, может проводится в офлайне.
Последнюю версию дистрибутива можете найти здесь. Скачивайте версию для Python 3.7, устанавливайте и запускайте Jupyter. Процесс создания проекта на сложный, вам всего лишь нужно определиться с рабочей директорией и создать там новую записную книжку Jupyter Notebook.
Никто так же не запрещает вам использовать терминал с Python или любой другой способ взаимодействовать с кодом.
Установка Instagram-API-python
Все инструкции по установке можно найти на странице Instagram-API-python в GitHub LevPasha. Там же вы найдете условия и ограничения по использованию API.
Главное, что нужно знать. Для успешного анализа постов необходимо подтвердить свой номер телефона в учетной записи Instagram, которая будет использоваться в коде.
Новый поддельный аккаунт Instagram с неподтвержденным номером телефона через 1-24 часа будет заблокирован и не сможет выполнять никаких запросов. Все запросы будут перенаправлены на страницу https://instagram.com/challenge.
Кстати, сам проект от LevPasha, по сути, представляет собой Python-порт другого проекта кастомной API, написанного на PHP.
После установки Python (в составе Conda или отдельно), запустите консоль. Сначала копируем содержимое Instagram-API-python в GitHub LevPasha.
git clone https://github.com/LevPasha/Instagram-API-python.git
Переходим в только что скачанный каталог:
cd Instagram-API-python
Устанавливаем зависимые файлы и библиотеки: (необязательно, нужно только если соберетесь закачивать в инсту фотки или видео)
pip install -r requirements.txt
Далее устанавливаем сам InstagramApi через pip. В консоли выполняем:
pip install InstagramApi
py -m install InstagramApi
Готово. После этого вы сможете вызывать API от LevPasha в любом коде на Python через команду
from InstagramAPI import InstagramAPI
Скачиваем контент любого Instagram аккаунта
Далее я привожу различные части одного кода в Python и объясняю его значение. В конце урока я прикреплю файлы, которые можно использовать для старта операции, подавая на них логин и пароль вашего аккаунта, а так же ID любых аккаунтов, как аргументы. В коде ниже логин, пароль от аккаунта для авторизации, а так же ID аккаунтов для скачивания постов будут поданы напрямую через код при выполнении. Учитывайте эту разницу.
Для начала импортируем необходимые библиотеки. InstagramAPI уже должен быть установлен по инструкции выше.
from InstagramAPI import InstagramAPI import time import sys import traceback import pandas as pd import datetime
Если вы не устанавливали зависимые библиотеки, то после выполнения появится сообщение Fail to import moviepy. Need only for Video upload. Значит, все загрузилось нормально, кроме модуля moviepy который вам не понадобится в данной инструкции.
После этого прогоняем следующую часть кода. Это и есть та часть, которая запускает сбор данных. В ней обращаем внимание на функцию time.sleep(10). Она будет ставить на 10-секундную паузу процесс в случае ошибки.
class MyInstaCrawler(InstagramAPI): """ Want to have a direct control over the instaAPI. When the users are loaded from api, the best way is to store them in the queue, where it would have listeners - parsers that would do next job. """ def __init__(self, username, password): super().__init__(username, password) def getTotalFollowers(self, usernameId): import datetime next_max_id = '' followers = [] while 1: try: if self.getUserFollowers(usernameId, next_max_id): temp = self.LastJson for item in temp["users"]: followers.append(item) print('Followers: %s ' % len(followers)) temp['collected_date'] = datetime.datetime.now().strftime("%m/%d/%Y, %H:%M:%S") if temp.get("big_list") is None: return followers elif temp['big_list'] is False: return followers next_max_id = temp["next_max_id"] except: print(traceback.format_exc()) print("Sleeping 10 secs") time.sleep(10)
После этого ваша программа ожидает ввода инструкций. Внимательно посмотрим на следующую часть кода.
В ней нужно вставить ваши значения. В поле usr вставляем имя пользователя аккаунта Instagram, при помощи которого будет осуществляться логин в систему, а в поле pasw, соответственно, пароль от этого аккаунта.
Что это должен быть за аккаунт? Желательно, не ваш основной. Шанс на блокировку в результате действий минимален, но перестраховаться не помешает. К тому же, если вы будете параллельно использовать ваш аккаунт для парсинга в процессе самого парсинга, то код вылетит с ошибкой. Так что создаем новый, чистый аккаунт, заполняем его и подтверждаем телефонный номер. Выкладываем несколько постов, находим друзей и живем с ним несколько дней. После этого его данные можно использовать для парсинга.
Далее, в поле args вставляем ID аккаунтов, от которых мы хотим получить контент, стату и мотоцикл. Как узнать ID аккаунта? При помощи специальных сервисов. Вот несколько бесплатных:
- https://codeofaninja.com/tools/find-instagram-user-id
- http://www.otzberg.net/iguserid/index.php
Кстати, советую где нибудь сохранить ID аккаунтов. Определить потом, чей этот ID можно будет только по результату работы кода.
ВАЖНО. Аккаунт, из-под которого осуществляется вход в систему, должен быть подписан на скрытые аккаунты, с которых предполагается скачивание данных. Если вы хотите скачать данные по закрытому аккаунту, а аккаунт для авторизации на него не подписан (и, соответственно, не имеет разрешение на просмотр контента), то код вылетит с ошибкой.
Так происходит, потому что, фактически, Instagram API от LevPasha представляет из себя эмулятор приложения Instagram для Android. Он заходит на каждый аккаунт в каждый пост, читает и записывает то что видит в таблицу. Просто делает это очень быстро. Если вы не можете зайти на этот аккаунт из-за его настроек приватности, получить доступ к его контенту будет нельзя.
Внимательно перепроверяем все настройки. Стоят ли кавычки вокруг каждого ID аккаунта? Запятые? Фигурная скобка в конце?
Если все окей, то запускаем последнюю часть кода.
usr = "Instagram_Login" pasw = "Instagram_Password" ic = MyInstaCrawler(usr, pasw) ic.login() args = ["отдельные", "айдишки", "каждого", "аккаунта", "для", "парсинга", "в кавычках через запятую"] total_results = [] for arg in args: try: arg = int(arg) results = ic.getTotalUserFeed(arg) if results is None: print('Some problems with id %s. No results.' % arg) continue print('Gathered %s media, saving. ' % len(results)) if len(results) != 0: username = results[0]['user']['username'] for r in results: try: reduced_r = <> date = datetime.datetime.fromtimestamp(r['taken_at']) date = date.strftime("%Y-%m-%d"'T'"%H:%M:%S"'Z') caption = r['caption'] caption_text = '' if caption is not None: caption_text = caption['text'] view_count = 0 if r['media_type'] == 2: if r.get('view_count'): view_count = int(r['view_count']) reduced_r['created_time'] = date reduced_r['user.username'] = username reduced_r['caption.text'] = caption_text reduced_r['likes.count'] = r['like_count'] reduced_r['video_views'] = view_count reduced_r['comments.count'] = r['comment_count'] reduced_r['link'] = 'https://instagram.com/p/' + r['code'] total_results.append(reduced_r) except Exception as e: print(e) print('Finished for %s, id: %s' % (username, arg)) except ValueError: print("Pass ID as an argument. Couldn't transform to int") except: print(traceback.format_exc()) df = pd.DataFrame(total_results) df.to_csv('Database %s.csv' % datetime.datetime.now().strftime("%Y-%m-%d,%H:%M:%S"))
Процесс начнется с серии ошибок логина, после чего вы получите надпись об успешном логине. После этого начнется процесс сбора постов. Выглядеть будет как то так:
Request return 405 error! Request return 404 error! Login success! Gathered 18 media, saving. Finished for ваш аккаунт, id: айди вашего аккаунта
Если увидите ошибку Pass ID as an argument. Couldn’t transform to int, перепроверьте, точно ли каждый ID находится в кавычках, и нет ли лишних или отсутствующих запятых.
После окончания процесса, готовая таблица появится в том же каталоге, в котором запускался код, с названием «Database (текущие дата и время).csv».
Готово! По возникающим вопросам, можете писать комментарии под этим постом на Open SMM Asia, или же в мой Facebook.
Если вы хотите использовать этот код в другом приложении, подавая на него аргументы извне, можете скачать специальную версию. Она будет ждать первым аргументом логин, вторым аргументом пароль, и последующими аргументами ID всех аккаунтов через запятую.
