jsonscraper

ИГ Инженерное руководство

Как парсить IG с помощью Python

Обновлено 5 марта 2026 г. 3 мин чтения 15 просмотров

В этом руководстве показан первый рабочий процесс обработки данных IG с использованием карты конечных точек jsonscraper, реальных примеров ответов и практических вариантов архитектуры.

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

Что вы получите

Быстрый старт в Postman

Начните с официальной IG-коллекции, один раз задайте license_key и запустите запросы в пару кликов перед написанием кода.

Шаг 1

Сделайте fork

Используйте коллекцию IG или TikTok в Postman как базу рабочего пространства.

Шаг 2

Укажите ключ

Configure license_key once in an environment variable.

Шаг 3

Автоматизируйте

Экспортируйте сниппеты или запускайте workflow с AI-агентами поверх готовых запросов.

Все API-запросы

Полная карта endpoint-ов из коллекции. Раскройте класс и нажмите на маршрут, чтобы посмотреть параметры и примеры ответов.

Пользователь Медиа История Хайлайт Локация Хэштег Поиск Поиск FB Аудио (Музыка) Веб API (GraphQL)
User (30 endpoints)
Media (18 endpoints)
Story (6 endpoints)
Highlight (3 endpoints)
Location (6 endpoints)
Hashtag (8 endpoints)
Search (11 endpoints)
FB Search (2 endpoints)
Audio (Music) (2 endpoints)
Web API (GraphQL) (11 endpoints)
Смотреть полный список endpoint'ов в Postman

Примеры Python из коллекции

Эти примеры используют ту же модель авторизации, что и в Postman: license_key в query-параметрах.

Example 1: get user by username (GET /v1/user/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "apple",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

print(data["status"], data["ig"]["username"], data["ig"]["pk"])
{
  "status": "ok",
  "limits_info": {"requests_count": 7098, "requests_limit": 2000300},
  "rate_limit_reached": false,
  "ig": {"pk": 5821462185, "username": "apple", "full_name": "apple"}
}

Example 2: get user stories by username (GET /v1/user/stories/by/username)

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

params = {
    "license_key": LICENSE_KEY,
    "username": "applemusic",
    "cache_timeout": 0,
}

r = requests.get(f"{BASE_URL}/v1/user/stories/by/username", params=params, timeout=30)
r.raise_for_status()
data = r.json()

stories = data.get("ig", [])
print("stories:", len(stories))

Шаблон Python-запросов (license key + пагинация)

Используйте единый helper для запросов, чтобы подпись и пагинация обрабатывались стабильно во всех endpoint-ах.

import requests

BASE_URL = "https://ig.jsonscraper.com"
LICENSE_KEY = "YOUR_LICENSE_KEY"

def call(endpoint: str, **params):
    q = {"license_key": LICENSE_KEY, "cache_timeout": 0, **params}
    res = requests.get(f"{BASE_URL}{endpoint}", params=q, timeout=30)
    res.raise_for_status()
    return res.json()

page1 = call("/v1/user/medias/chunk", user_id="5821462185")
next_max_id = page1.get("next_max_id")
if next_max_id:
    page2 = call("/v1/user/medias/chunk", user_id="5821462185", max_id=next_max_id)

Практические заметки

  • Всегда передавайте license_key в каждом запросе.
  • Явно задавайте cache_timeout для повторяющихся проверок.
  • Сохраняйте поля курсоров вместе с контекстом запроса.
  • Масштабируйте покрытие маршрутов по классам после проверки базового потока.

Готовы запустить ваш API-workflow?

Выберите API, протестируйте endpoint'ы в Postman и запустите workflow за минуты.