jsonscraper

IG 엔지니어링 가이드

Python으로 IG 스크래핑하는 방법

업데이트: 2026년 3월 5일 읽는 데 3분 15 조회수

이 가이드는 실제 응답 샘플과 실용적인 아키텍처 선택과 함께 jsonscraper 엔드포인트 맵을 사용하는 프로덕션 우선 IG 데이터 워크플로를 보여줍니다.

프로덕션 워크로드의 주요 이점은 엔드포인트 깊이와 중요한 경로에 대한 캐시_시간 제한 지원으로, 중복 호출과 할당량 소모를 줄이는 데 도움이 됩니다.

구성할 내용

Postman 빠른 시작

공식 IG 컬렉션으로 시작해 license_key를 한 번 설정하고, 코딩 전에 몇 번의 클릭으로 요청을 실행하세요.

1단계

포크

IG 또는 TikTok Postman 컬렉션을 작업 공간 기준으로 사용하세요.

2단계

키 설정

Configure license_key once in an environment variable.

3단계

자동화

준비된 요청에 맞춰 스니펫을 내보내거나 AI 에이전트 워크플로를 실행하세요.

전체 API 요청

컬렉션의 전체 엔드포인트 맵입니다. 각 클래스를 펼치고 라우트를 클릭해 파라미터와 응답 예시를 확인하세요.

사용자 미디어 스토리 하이라이트 위치 해시태그 검색 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)
Postman에서 전체 엔드포인트 목록 보기

컬렉션 기반 Python 예제

이 예제는 Postman과 동일한 인증 패턴을 사용합니다: query 파라미터의 license_key.

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 + 페이지네이션)

공통 요청 헬퍼를 사용해 모든 엔드포인트에서 서명과 페이지네이션을 일관되게 유지하세요.

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 워크플로를 시작할 준비가 되셨나요?

API를 선택하고, Postman에서 엔드포인트를 테스트하고, 몇 분 만에 워크플로를 시작하세요.