jsonscraper
시장
저널로 돌아가기

IG 프로필을 일일 변화 목록으로 만드는 방법

일정에 따라 공개 프로필 지표를 수집하고, 스냅샷을 저장한 뒤 실제 변화만 확인하세요.

편집 정책 오류 제보

마케터가 공개 IG 프로필 수십 개를 수동으로 확인할 때 가장 큰 손실은 페이지를 여는 시간이 아니라 비교 가능한 기록이 없다는 점입니다. 한 번의 스냅샷은 오늘의 팔로워 수를 알려 주고, 두 번의 스냅샷이 있으면 선택한 기간의 차이를 계산할 수 있습니다. 간단한 프로필 모니터링은 요청을 자동화하고 필요한 필드만 저장해 변화 표를 만드는 방식으로 구현할 수 있습니다.

아래는 Python으로 작성한 최소한의 실행 예제입니다. IG Scraper API를 통해 사용자 이름으로 프로필 정보를 가져오고, 타임스탬프가 포함된 JSONL 행을 기록합니다. 결과는 cron, n8n 또는 자체 저장소에 연결할 수 있는 간단한 기록 데이터입니다. 경로와 매개변수에 대한 공식 설명은 IG API 문서에서 확인할 수 있습니다.

일일 스냅샷으로 해결할 수 있는 문제

브랜드나 파트너의 공개 계정을 추적하면서 팔로워 수, 게시물 수 또는 인증 상태의 변화를 알아내려는 팀을 생각해 보세요. 프로필 페이지를 보면 현재 값은 확인할 수 있지만, 지난주 상태까지 자동으로 저장되지는 않습니다. 따라서 먼저 중요한 필드를 정한 다음 관측 날짜와 함께 저장해야 합니다.

기사: IG 프로필을 일일 변화 목록으로 만드는 방법
요약: 공개 IG 프로필 모니터링을 위한 실용 가이드입니다. API 요청, 키의 안전한 보관, 과거 스냅샷 기록, 실행 간 변화 계산을 살펴봅니다.
이미지 역할: 핵심 아이디어를 담은 표지
섹션: 일일 스냅샷으로 해결할 수 있는 문제
시각적 주제: 추상적인 색상 소셜 미디어 타일로 표현한 인쇄된 IG 프로필 카드와 날짜가 적힌 종이 데이터 스냅샷을 나란히 배치한 편집 사진
프로필은 현재 스냅샷을 제공하고, 날짜가 표시된 기록을 반복해서 저장하면 비교할 수 있는 기록이 만들어집니다.© jsonscraper · AI로 생성

/v1/user/by/username 경로는 필수 매개변수인 username을 받습니다. 응답에는 follower_count, following_count, media_count, is_verified, is_private, biography 등이 포함됩니다. 이 필드들은 프로필 스냅샷에 적합하지만, 게시물 기록을 제공하거나 지표 변화의 원인을 설명하지는 않습니다.

이 스크립트의 범위는 의도적으로 좁게 잡았습니다. 지정된 시점에 관측 가능한 필드들을 가져오고 이전 기록과 비교하는 것입니다. 이를 통해 분석가는 저장된 날짜 사이에 팔로워 수가 변했다는 사실 등을 확인하고, 자동 수집과는 별도로 추가 조사를 진행할 수 있습니다.

API 키와 계정 목록 준비하기

요청 라이브러리를 설치하고 API 키를 환경 변수에 설정하세요. 비밀 키를 소스 파일이나 저장소, 프로그램 출력에 넣지 마세요. API는 요청 매개변수 license_key를 사용하며, 아래 라이브러리가 쿼리 문자열을 자동으로 구성합니다.

python -m pip install requests
export JSONSCRAPER_INSTAGRAM_LICENSE_KEY="your_key"

프로필 목록은 설정 파일이나 프로젝트 변수에 저장하면 편리합니다. 첫 실행에서는 응답, 접근 권한, 저장 작업을 확인할 수 있도록 사용자 이름 하나만 사용해도 충분합니다. 예제에서는 username을 API 매개변수로 지정하고 키는 환경 변수에서만 읽습니다.

Python으로 요청하고 스냅샷 저장하기

스크립트는 HTTP 응답과 API의 외부 상태, ig 객체의 존재 여부를 확인합니다. 그런 다음 실제로 존재하는 값만 저장합니다. 필드가 없으면 기록에 null을 남깁니다. 0을 대신 넣으면 알 수 없는 값과 실제 0을 혼동하게 됩니다.

기사: IG 프로필을 일일 변화 목록으로 만드는 방법
요약: 공개 IG 프로필 모니터링을 위한 실용 가이드입니다. API 요청, 키의 안전한 보관, 과거 스냅샷 기록, 실행 간 변화 계산을 살펴봅니다.
이미지 역할: 두 번째 보조 삽화 — 다른 구체적 측면을 보여 줌
섹션: Python으로 요청하고 스냅샷 저장하기
시각적 주제: 예약된 Python 요청에서 IG 프로필 엔드포인트를 거쳐 JSON 파일과 두 개의 저장된 관측값 비교로 이어지는 데이터 흐름을 보여 주는 러시아어 인포그래픽
프로필 요청부터 저장된 두 관측값의 비교까지 이어지는 흐름을 보여 주는 도식입니다.© jsonscraper · AI로 생성
import json
import os
from datetime import datetime, timezone
from pathlib import Path

import requests

API_URL = "https://ig.jsonscraper.com/v1/user/by/username"
LICENSE_KEY = os.environ["JSONSCRAPER_INSTAGRAM_LICENSE_KEY"]
USERNAME = "apple"  # 자신의 목록에 있는 프로필로 바꾸세요
OUTPUT = Path("instagram-profile-snapshots.jsonl")

response = requests.get(
    API_URL,
    params={"username": USERNAME, "license_key": LICENSE_KEY},
    timeout=30,
)
response.raise_for_status()
payload = response.json()

if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
    raise RuntimeError("API가 예상하지 못한 상태 또는 구조를 반환했습니다")

profile = payload["ig"]
record = {
    "observed_at": datetime.now(timezone.utc).isoformat(),
    "username": profile.get("username", USERNAME),
    "pk": profile.get("pk"),
    "follower_count": profile.get("follower_count"),
    "following_count": profile.get("following_count"),
    "media_count": profile.get("media_count"),
    "is_verified": profile.get("is_verified"),
    "is_private": profile.get("is_private"),
}

with OUTPUT.open("a", encoding="utf-8") as file:
    file.write(json.dumps(record, ensure_ascii=False) + "\n")

print("스냅샷 저장 완료:", record["username"], record["observed_at"])

예제의 필드와 구조는 해당 경로에 설명된 프로필 정보에 부합합니다. 요청이 성공하면 호출 시점의 관측값이 반환됩니다. 변화 추이를 분석하려면 스크립트를 반복 실행하고 각 스냅샷을 저장해야 합니다. IG Scraper API 페이지에는 기본 요청과 JSON 형식의 예시 응답이 나와 있습니다.

스냅샷 사이의 변화 계산하기

JSONL은 한 줄에 하나의 기록을 저장하므로 Python 표준 모듈로 읽을 수 있습니다. 다음 코드는 프로필의 마지막 두 기록을 골라 팔로워 수의 차이를 계산합니다. 두 기록 모두 숫자 값을 포함할 때만 결과를 출력합니다.

import json
from pathlib import Path

rows = [
    json.loads(line)
    for line in Path("instagram-profile-snapshots.jsonl").read_text(encoding="utf-8").splitlines()
]

username = "apple"
profile_rows = [row for row in rows if row.get("username") == username]
profile_rows.sort(key=lambda row: row["observed_at"])

if len(profile_rows) >= 2:
    previous, current = profile_rows[-2:]
    old = previous.get("follower_count")
    new = current.get("follower_count")
    if isinstance(old, int) and isinstance(new, int):
        print({
            "username": username,
            "from": previous["observed_at"],
            "to": current["observed_at"],
            "follower_delta": new - old,
        })

계산된 차이는 선택한 두 관측값 사이의 변화만 나타냅니다. 실행을 건너뛰면 관측 간격이 길어집니다. 따라서 보고서에는 두 날짜를 모두 표시하고, 변화를 자동으로 ‘하루 동안’의 변화라고 부르지 않아야 합니다. 정기적으로 실행하려면 cron이나 클라우드 플랫폼의 스케줄러를 설정하세요. n8n에서는 스케줄러, HTTP 요청, 데이터베이스나 표에 결과를 기록하는 노드를 같은 순서로 구성할 수 있습니다. 노드 이름과 저장소 연결 방식은 설치 환경에 따라 다릅니다.

여러 프로필로 확장하기

계정 목록을 처리하려면 이름을 별도 파일에 넣고 반복문으로 순회하세요. 각 요청의 상태를 따로 저장하면 한 프로필의 오류가 다른 프로필에서 성공적으로 가져온 데이터를 지우지 않습니다. 시간 제한, 오류 로그를 추가하고 요청이 실패한 계정만 다시 실행하세요.

API가 pk를 반환한다면 이를 기록 키로 사용하면서 읽기 편하도록 사용자 이름도 함께 저장할 수 있습니다. 식별자는 보고서의 텍스트 레이블과 프로필을 구분하는 데 도움이 됩니다. 값이 없을 때는 임의로 만들어 내거나 다른 필드로 대체하지 마세요. 분석을 위해 수집 시각은 UTC로 저장하고 비교 기간을 명확히 지정하는 것이 좋습니다.

특정 빈도로 정보를 가져오는 것으로 충분한 작업이라면 문서화된 cache_timeout 매개변수로 캐시 기간을 초 단위로 지정할 수 있습니다. IG은 기본적으로 캐싱이 꺼져 있습니다. 모니터링 간격을 고려해 기간을 선택하고, 결과를 해석할 때 요청 설정을 확인할 수 있도록 수집 설정과 함께 기록하세요.

최종 결과

몇 차례 실행하고 나면 공개 지표의 시간별 스냅샷을 담은 파일과 선택한 날짜 사이의 차이를 계산하는 간단한 방법을 갖게 됩니다. 이 데이터를 Google Sheets, PostgreSQL 또는 분석 시스템에 불러올 수 있습니다. 별도의 처리 계층을 추가하면 팀에서 정한 기준을 변화가 초과했을 때 알림을 만들 수 있습니다. 이 기준은 비즈니스 규칙이지 API에 내장된 기능은 아닙니다.

프로필 경로는 계정 필드를 제공하므로 새 게시물 자체를 감사하려면 media_count만으로 추론하지 말고 미디어 수집에 적합한 경로를 사용해야 합니다. IG API 문서에는 user_id와 end_cursor 매개변수로 페이지별 게시물을 가져오는 별도의 게시물 목록 경로가 나와 있습니다. 게시물 자체를 살펴봐야 하는 작업이라면 이 경로를 사용하세요. 여기서 설명한 프로필 지표의 기록표를 만들려면 사용자당 요청 한 번과 스냅샷의 반복 저장만으로 충분합니다.

프로필 하나와 두 번의 실행으로 시작하세요. 응답 상태가 올바른지, 날짜가 저장되는지, 누락된 데이터가 명시적으로 알 수 없는 값으로 남는지 확인합니다. 그런 다음 계정 목록과 일정을 추가하세요. 이렇게 하면 간격과 원래 값이 명확하고 재현 가능한 관측 기록을 만들어 검토하고 분석 과정으로 전달할 수 있습니다.

사람들

아직 이 기사에 등록된 사람이 없습니다.

계속 읽으세요게시물 추이로 IG 크리에이터 평가하기: Python 실전 파이프라인
다음 기사 읽기

읽은 내용을 실제 연동으로 구현하세요

jsonscraper 소셜 데이터 API를 살펴보고 요청을 테스트하여 다음 워크플로를 구축하세요.

API 둘러보기