Как парсить в Instagram? 3 способа получить максимальный результат

By AdsPower
|
2025/09/18

С учетом более чем 1,3 миллиарда пользователей, Instagram представляет собой ценный источник данных для бизнеса, который можно использовать для исследований рынка, генерации потенциальных клиентов и мониторинга производительности. Однако собирать эти данные с Instagram довольно сложно.

Процесс имеет множество сложностей, возникающих из-за политики Instagram или технических непоняток.

Эта статья отвечает на вопрос, как получать данные с Instagram 3-мя способами, включающих методы с использованием кода, а также без него.

Важно: Продукты компании Meta, включая Фейсбук, Инстаграм, Твиттер и другие, запрещены к использованию на территории Российской Федерации. Пожалуйста, соблюдайте законы.

Законен ли парсинг Instagram?

Ответ на вопрос "Является ли сбор данных с Instagram законным?" является как да, так и нет, и это зависит от типа данных, которые вы собираете. Если вы хотите собирать данные из Instagram, которые доступные публично, то ответ - да.
Но если вы собираете данные из Instagram, которые требуют авторизации в учетную запись Instagram, то это явно запрещено, и вы можете столкнуться с блокировкой аккаунта и в худшем случае - с юридическими последствиями. Но даже для общедоступных данных вам следует обеспечить легитимный способ парсинга.

Для сбора данных с Instagram легальным образом можно использовать API, который предоставляет Instagram. К ним относятся API-интерфейс Graph Instagram и API-интерфейс Basic Display Instagram.

API-интерфейс Graph позволяет управлять и извлекать данные о бизнес-аккаунтах и аккаунтах создателей. А API-интерфейс Basic Display дает вам только доступ для чтения к основной информации пользователей. Оба этих API соответствуют политике Instagram относительно сбора данных, поэтому использование их для парсинга в Instagram является абсолютно законным.

Однако если вы используете не общедоступные API или незаконные методы, которые обращаются к платформе без предварительного разрешения и часто маскируют парсер, чтобы выглядеть как обычный пользователь, то это относится к несанкционированному сбору и нарушает Условия использования Instagram.

Так что прежде чем начать собирать данные из Instagram, задумайтесь и убедитесь в том, что вы помните и не нарушаете правила.

Какие данные Instagram вы можете легко получить?

Прежде чем показать вам, как собирать данные из Instagram, давайте сначала выясним, какие данные можно законно парсить с платформы. Легальный парсинг страниц Instagram может дать вам доступ к этим трем категориям данных:

  • Хэштеги: Вы можете получить самые популярные или недавно опубликованные фотографии и видео, помеченные определенным хэштегом в подписи.
  • Профили: Вы можете получить данные профиля, такие как публикации, количество лайков и количество подписчиков/подписок.
  • Посты:Вы можете получить количество комментариев, количество лайков, идентификатор профиля, дата публикации и URL-адрес.

3 способа парсинга Instagram

Вот три способа парсинга Instagram. Выберите тот, который соответствует вашим потребностям и возможностям:

Парсинг Instagram с использованием Instagram API

Вот пошаговое руководство о том, как парсить Instagram, но сначала убедитесь, что вы выполнили следующие требования:

  • Бизнес-аккаунт Instagram/аккаунт автора
  • Страница Facebook, связанная с учетной записью Instagram Business/Creator
  • Аккаунт разработчика Facebook для использования API Instagram Graph
  • Зарегистрированное приложения Facebook с минимальными настройками.

Как только вы закончите с этими предварительными условиями, следующие этапы будут выглядеть следующим образом.

Добавьте функцию входа в Facebook:

Перейдите на панель управления вашего приложения Facebook и нажмите кнопку «Продукт +» на панели в левой части окна. Оттуда добавьте продукт для входа в Facebook. На данный момент не меняйте настройки этого продукта и оставьте их по умолчанию.

Далее вам нужно будет реализовать вход через Facebook в свое приложение с помощью
документации по авторизации в Facebook и убедиться, что ваша процедура входа запрашивает эти два основных разрешения:

Создайте токен доступа:

Для выполнения действий с панели приложения на аккаунте Instagram требуется токен доступа пользователя. В правой части страницы панели управления откройте выпадающий список Пользователь или Страница и выберите Получить токен доступа пользователя.

Появится всплывающее окно, уведомляющее, что приложение (в данном случае ваше приложение) запрашивает вышеперечисленные разрешения. Просто нажмите кнопку Продолжить или ОК, и токен доступа пользователя будет получен в поле токена доступа на вашей панели управления.

Теперь, используя токен доступа пользователя, мы выполним несколько основных запросов к аккаунту Instagram.

1. Get Facebook Page ID:

Во-первых, нам нужен ID страницы Facebook, связанный с аккаунтом Instagram Business. Для этого выполните следующий запрос Get на панели мониторинга.

"https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"

Это вернет имя и идентификаторы страниц Facebook, принадлежащих пользователю Facebook. Результат будет выглядеть следующим образом.

 {
  "data": [
    {
      "access_token": "EAAJjmJ...",
      "category": "App Page",
      "category_list": [
        {
          "id": "2301",
          "name": "App Page"
        }
      ],
      "name": "Metricsaurus",
      "id": "134895793791914", 
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    }
  ]
}

Скопируйте ID страницы, подключенной к бизнес-аккаунту Instagram.

2. Получите ID бизнес-аккаунта Instagram:

Используя ID от Facebook, введите следующий скрипт в командной строке и нажмите «Отправить».

134895793791914?fields=instagram_business_account

Вы получите следующий результат.

 {
  "instagram_business_account": {
    "id": "17841405822304914"  // Connected IG User ID
  },
  "id": "134895793791914"  // Facebook Page ID
}

3. Получите медиа-объекты аккаунта Instagram:

Скопируйте ID Instagram из выходных данных и выполните следующий скрипт, чтобы получить идентификаторы всех историй, опубликованных в настоящее время в бизнес-аккаунте Instagram.

 17841405822304914/stories

Результат будет содержать идентификатор для каждой истории.

{
  "data": [
    {
      "id": "17918195224117851"
    },
    {
      "id": "17895695668004550"
    },
    {
      "id": "17899305451014820"
    },
    {
      "id": "17896450804038745"
    },
    {
      "id": "17881042411086627"
    },
    {
      "id": "17869102915168123"
    }
  ]
}

Это был лишь один пример. С помощью Instagram Graph API вы также сможете получать другую информацию, включая метаданные пользователей Instagram и проводить анализ хэштегов.

Теперь давайте перейдем к другому способу.

Парсинг Instagram с помощью Cloud Scrapper

Для тех, у кого нет опыта в программировании, вышеупомянутый метод может быть сложен для понимания, не говоря уже о его выполнении. Но не беспокойтесь. Существуют инструменты для парсинга в Instagram, которые позволяют выполнять данную задачу без необходимости написания какого-либо кода.

Парсинг также можно выполнить с использованием инструмента под названием
Apify.

Перейдите на страницу парсера Apify:

Посетите страницу Apify Instagram Scraper и нажмите кнопку «Попробовать бесплатно».

Парсинг Instagram с помощью Cloud Scrapper

Зарегистрируйтесь в Apify, используя адрес электронной почты или аккаунт Google или Github. Вы попадете в консоль управления Apify, где происходит парсинг Instagram.

Соберите целевые URL-адреса Instagram:

Используя приложение или сайт Instagram, соберите все URL-адреса профилей Instagram, которые вы хотите спарсить. В консоли Apify вставьте все эти URL-адреса в указанные поля ввода по очереди. Чтобы внести их все сразу, можете использовать кнопку «Массовое редактирование».

Apify предлагает три варианта парсинга предоставленных URL-адресов: вы можете парсить сообщения и комментарии или получать различные сведения из профилей.

Нажмите “Сохранить и запустить”:

Оставьте остальные настройки без изменений и нажмите "Сохранить и запустить", чтобы запустить парсер. Результатом будет таблица, содержащая количество строк, равное количеству URL-адресов профилей, которые вы предоставили, а также несколько столбцов с метаданными профиля, такими как биография, количество подписчиков, количество публикаций, количество рилов, ID аккаунта и статус верификации, чтобы упомянуть лишь некоторые из них.
Сохранить и запустить

Соберите результаты:

Теперь нажмите кнопку "Экспорт результатов" и выберите желаемый формат файла из всплывающего окна. Вы также можете собрать данные, выбрав или исключив поля, которые вам не нужны. После этого вы сможете скачать результаты, просмотреть их в новой вкладке или поделиться по ссылке.

Парсинг Instagram с помощью языков программирования

Создание собственного парсера Instagram может стать наиболее эффективным решением, если ваши требования нестандартны, и у вас есть хорошие знания в программировании либо разработчик в команде. Вы можете сделать это, используя любой язык программирования совместим с фреймворком для веб-парсинга.

Это руководство покажет, как выполнить парсинг в Instagram с использованием Python и Selenium, фреймворка автоматизации браузера.

Импорт основных библиотек:

Для начала импортируйте базовые библиотеки: Selenium, его веб-драйвер и Selenium-Stealth, чтобы предотвратить идентификацию.

from selenium import webdriver
from selenium.webdriver.common.by import By
from pprint import pprint
import json
from selenium_stealth import stealth

Библиотека pprint поможет нам аккуратно распечатать результат и повысить его читабельность.

Составьте список профилей Instagram:

Составьте список и добавьте никнеймы профилей Instagram, на которые вы ориентируетесь.

usernames = ["natureismetal", "miteuniversity", "samstailor", "therock"]
proxy = "server:port"
output = {}

Переменная output - это словарь, который мы будем использовать для хранения результатов.

Определим основную функцию:

Главная функция будет последовательно обходить список пользователей и вызывать функцию "scrape" для каждого пользователя.

 def main():
    for username in usernames:
        scrape(username)

Определите функцию для управления настройками браузера:

Эта функция будет настраивать параметры браузера перед каждым запросом на парсинг, чтобы добавить анонимности и избежать обнаружения со стороны Instagram. Эти изменения включают в себя ротацию прокси, настройку параметров Selenium-Stealth и создание искусственного юзер агента.

 def prepare_browser():
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument(f'--proxy-server={proxy}')
    chrome_options.add_argument("start-maximized")
      chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
      chrome_options.add_experimental_option('useAutomationExtension', False)
    driver = webdriver.Chrome(options= chrome_options)
    stealth(driver,
            user_agent= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36',
            languages= ["en-US", "en"],
            vendor=  "Google Inc.",
            platform=  "Win32",
            webgl_vendor=  "Intel Inc.",
            renderer=  "Intel Iris OpenGL Engine",
            fix_hairline= False,
            run_on_insecure_origins= False,
            )
    return driver

Определите функцию для парсинга:

Функция scrape(), вызванная в главной, принимает в качестве аргумента единственное имя пользователя Instagram и создает конечную точку профиля, которую мы будем использовать для отправки запроса через браузер Chrome с помощью функции preparebrowser().

Мы также будем проверять статус запроса. Если ваш запрос был перенаправлен на страницу входа в систему, это означает, что запрос не удался. Если же строка для входа отсутствует, запрос был успешным, и результат будет разобран в формате JSON и отправлен в функцию prepare_browser() function вместе с именем пользователя.

def scrape(username):


    url = f'https://instagram.com/{username}/?__a=1&__d=dis'
    chrome = prepare_browser()
    chrome.get(url)
    print (f"Attempting: {chrome.current_url}")


    if "login" in chrome.current_url:
          print ("Failed/ redir to login")
          chrome.quit()

      else:
          print ("Success")
          resp_body = chrome.find_element(By.TAG_NAME, "body").text
          data_json = json.loads(resp_body)
          user_data = data_json['graphql']['user']
          parse_data(username, user_data)
          chrome.quit()

Определите функцию parse_data():

Эта функция анализирует данные в формате JSON, переданные в аргументе userdata, чтобы получить необходимые поля данных. В данном примере, мы извлекаем полное имя пользователя, категорию аккаунта, количество подписчиков и заголовки постов.

def parse_data(username, user_data):
     captions = []


     if len(user_data['edge_owner_to_timeline_media']['edges']) > 0:
          for node in user_data['edge_owner_to_timeline_media']['edges']:
               if len(node['node']['edge_media_to_caption']['edges']) > 0:
                  If node['node']['edge_media_to_caption']['edges'][0]['node']['text']:
                     captions.append(

node['node']['edge_media_to_caption']['edges'][0]['node']['text'])
     

     output[username] = {
        'name': user_data['full_name'],
        'category': user_data['category_name'],
        'followers': user_data['edge_followed_by']['count'],
        'posts': captions,

     }

Напишите код драйвера:

The driver code начинает процесс парсинга, извлекает данные в переменную output и вызывает функцию pprint() для красивого отображения результатов.

if __name__ == '__main__':
    main()
    pprint(output)

Обход обнаружения с помощью антидетект браузера AdsPower

Инстаграм достаточно строг, когда речь идет о парсинге, и предоставляет очень ограниченный доступ к публичным данным на своей платформе. Это включает в себя базовую информацию, такую как идентификатор профиля, количество подписчиков, количество лайков и комментариев. Углубленный анализ требует авторизации в систему, что нарушает политику Инстаграм и может привести к блокировке аккаунта.

Здесь на помощь приходит AdsPower, помогая вам сохранить анонимность профиля при парсинге данных с Инстаграм. AdsPower использует антидетект-техники, такие как ротацию IP-адресов и ограничение скорости, чтобы избежать защитных мер против парсинга.

Так что в следующий раз, когда вы займетесь парсингом в Инстаграм, используя no-code-инструменты или неофициальные API, попробуйте использовать браузер AdsPower для обхода обнаружения.

Итоги

Инстаграм разрешает собирать только общедоступные данные с их платформы при помощи двух API. Но эти API предоставляют очень ограниченный доступ к информации, и не позволяют получить действительно важные данные.

Из-за этого остается только использовать сторонние веб-парсеры или создать свой с помощью языков программирования. Однако, парсинг Инстаграм с использованием этих неофициальных методов может быть обнаружен, поэтому обязательно используйте специальный антидетект браузер AdsPower для дополнительной защиты.

Последнее изменение: 2025-09-18