jsonscraper
시장
저널로 돌아가기

검증 가능한 항목으로 IG 프로필과 캠페인 브리프를 대조하세요

IG Scraper API와 Python으로 계정 목록을 재현 가능한 방식으로 검증하는 법

편집 정책 오류 제보

캠페인을 시작하기 전에 브리프에 포함된 각 IG 계정을 프로필의 공개 데이터와 자동으로 대조할 수 있습니다. 이렇게 확인하면 username 불일치, 비공개 상태, 이름이나 소개 변경, 게시물 수가 예상 범위를 벗어나는 경우를 찾아낼 수 있습니다. 결과물은 마케터가 검토할 점검 표이며, 크리에이터의 적합성을 자동으로 판정하는 것은 아닙니다.

기사: 검증 가능한 항목으로 IG 프로필과 캠페인 브리프를 대조하세요 요약: 캠페인 시작 전에 공개 IG 프로필을 확인하세요. username으로 정보를 조회하고 브리프와 대조해 불일치 보고서를 작성하되, 누락된 데이터를 0으로 바꾸지 않습니다. 이미지 역할: 핵심 아이디어를 담은 표지 섹션: 시각적 주제: 편집 사진: 책상 위에 인쇄된 인플루언서 캠페인 브리프와 간결한 CSV 검증 보고서. 프로필 데이터는 중립적인 카드로 표현됨
브리프의 요구 사항을 프로필의 구체적인 공개 항목과 대조합니다.© jsonscraper · AI 생성

문제: 브리프가 표보다 빠르게 낡습니다

캠페인 목록에는 계정 이름, 링크, 팔로워 수 기준, 공개 프로필 요건이 포함될 수 있습니다. 이런 정보는 쉽게 서로 달라집니다. 계정의 username이 바뀌거나 프로필이 비공개로 전환되어도 브리프에는 이전 수치가 남을 수 있습니다. 계정을 하나씩 수동으로 확인하는 일은 간단하지만, 캠페인마다 목록 전체를 반복해서 확인하려면 통제와 재현이 어려워집니다.

유용한 방법은 각 행에 명시적인 규칙을 정하고, 확인 시점에 이용할 수 있는 공개 항목을 가져와 원래 값과 실제 값을 나란히 기록하는 것입니다. 이때 ‘일치’란 특정 항목이 특정 규칙에 부합한다는 뜻일 뿐입니다. 오디언스 적합성이나 콘텐츠 품질에 대한 판단은 전문가가 내려야 합니다.

어떤 데이터를 요청할까

IG API 엔드포인트 안내서에는 필수 매개변수 username을 사용하는 GET 경로 /v1/user/by/username이 설명되어 있습니다. 확인된 응답에서 프로필 데이터는 ig 객체에 들어 있으며, username, 전체 이름, 소개, 비공개 및 인증 여부, 게시물 수, 팔로워 수, 팔로잉 수가 포함됩니다. 이 항목들은 이용 가능한 프로필 스냅샷을 나타냅니다.

초기 점검에는 계정 이름, 공개 여부, 수치 기준을 대조할 수 있는 정보면 충분합니다. 운영자가 검토할 수 있도록 소개를 표시하거나, 필수 용어의 포함 여부처럼 단순한 규칙으로 확인할 수도 있습니다. 이런 텍스트 필터는 문자열이 일치하는지 찾을 뿐, 그 의미를 평가하거나 계약 조건 충족을 입증하지는 않습니다.

Python에서 요청 구현하기

먼저 라이선스 키를 환경 변수 JSONSCRAPER_INSTAGRAM_LICENSE_KEY에 저장합니다. 아래 예제는 확인된 기본 주소, 경로, username 매개변수, 키 이름 license_key를 사용합니다. CSV에는 username,min_followers,max_followers,require_public 필드가 들어갑니다. 스크립트는 각 계정의 응답을 규칙과 대조하고 검토가 필요한 행을 표시합니다.

import csv
import os
import sys
import requests

BASE_URL = "https://ig.jsonscraper.com"
API_KEY = os.environ.get("JSONSCRAPER_INSTAGRAM_LICENSE_KEY")
if not API_KEY:
    raise SystemExit("Set JSONSCRAPER_INSTAGRAM_LICENSE_KEY")

# brief.csv: username,min_followers,max_followers,require_public
with open("brief.csv", newline="", encoding="utf-8") as source:
    brief = list(csv.DictReader(source))

results = []
for row in brief:
    username = row.get("username", "").strip()
    minimum_text = row.get("min_followers", "").strip()
    if not username or not minimum_text:
        results.append({
            "requested_username": username,
            "needs_review": True,
            "error": "Missing username or min_followers",
        })
        continue

    try:
        response = requests.get(
            f"{BASE_URL}/v1/user/by/username",
            params={"username": username, "license_key": API_KEY},
            timeout=30,
        )
        response.raise_for_status()
        payload = response.json()
        if payload.get("status") != "ok" or not isinstance(payload.get("ig"), dict):
            raise ValueError("Unexpected API response")
        profile = payload["ig"]

        followers = profile.get("follower_count")
        minimum = int(minimum_text)
        maximum_text = row.get("max_followers", "").strip()
        maximum = int(maximum_text) if maximum_text else None
        public_required = row.get("require_public", "").strip().lower() == "true"

        checks = {
            "username_matches": (
                isinstance(profile.get("username"), str)
                and profile["username"].lower() == username.lstrip("@").lower()
            ),
            "followers_in_range": (
                isinstance(followers, int)
                and followers >= minimum
                and (maximum is None or followers

실행 명령은 python check_profiles.py입니다. requests 라이브러리를 설치하고 실행 환경에 환경 변수를 설정한 다음, brief.csv 파일을 같은 디렉터리에 둡니다. 키를 소스 코드나 최종 CSV에 기록하지 마세요. 스크립트는 목록을 순차적으로 처리하므로 소규모 계정 묶음을 확인하고 디버깅하기에 편리합니다.

누락된 값을 그대로 드러내야 하는 이유

검증 규칙에서는 값이 0인 경우와 항목 자체가 없는 경우를 구별하는 것이 중요합니다. 예제에서는 숫자형 팔로워 수가 있을 때만 조건을 충족한 것으로 간주합니다. 카운터가 누락되면 조건을 확인할 수 없으므로 해당 항목을 수동 검토 대상으로 보냅니다. min_followers 기준이 비어 있는 경우에도 자동으로 0을 넣지 않고 입력 오류로 표시합니다.

응답 검증도 작업 절차에 포함해야 합니다. 스크립트는 먼저 외부 상태가 ok인지 확인한 다음 ig 객체가 있는지 검사합니다. HTTP 오류, 예상과 다른 JSON, 잘못된 규칙은 URL에 키가 노출될 수 있는 예외 메시지 없이 보고서에 기록합니다. 이렇게 하면 운영자는 비밀 정보를 퍼뜨리지 않고 요청 실패와 프로필 불일치를 구분할 수 있습니다.

결과를 해석하고 검증 자동화하기

profile_check.csv에는 원래 username, 반환된 이름, 이용 가능한 공개 항목, 개별 조건의 결과, 종합 플래그 needs_review가 포함됩니다. 팀은 이 플래그로 행을 필터링할 수 있고, 개발자는 보고서를 저장소에 보관하거나 ETL 프로세스의 다음 단계로 전달할 수 있습니다. 정해진 일정에 맞춰 실행하려면 스케줄러를 사용하고 실행 날짜를 별도로 저장해 캠페인 스냅샷을 비교하세요.

기사: 검증 가능한 항목으로 IG 프로필과 캠페인 브리프를 대조하세요 요약: 캠페인 시작 전에 공개 IG 프로필을 확인하세요. username으로 정보를 조회하고 브리프와 대조해 불일치 보고서를 작성하되, 누락된 데이터를 0으로 바꾸지 않습니다. 이미지 역할: 구체적인 다른 측면을 보여 주는 보조 일러스트 2 섹션: 결과를 해석하고 검증 자동화하기 시각적 주제: 러시아어 인포그래픽 다이어그램: CSV 브리프 행 → GET /v1/use
브리프의 행에서 보고서까지 이어지는 경로와 누락 데이터의 수동 검토를 보여 주는 도식입니다.© jsonscraper · AI 생성 일러스트

규칙이 바뀌면 코드에 고정하지 말고 브리프에 저장하세요. 그러면 기준을 검증하기 쉬워집니다. 각 행에서 예상한 팔로워 범위나 공개 여부를 확인할 수 있기 때문입니다. 소개에 지정된 텍스트가 있는지 검사하는 조건을 추가할 수도 있지만, 문자 그대로 일치하는지만으로는 전문가의 내용 평가를 대신할 수 없습니다.

IG Scraper API 페이지에는 기본 주소, 요청 예시, Postman 링크가 나와 있습니다. 위 시나리오는 확인된 username 기반 프로필 조회만 사용하며, 이 요청으로 게시물까지 반환된다고 가정하지 않습니다.

실질적인 결과는 재현 가능한 사전 점검입니다. 목록 전체를 수동으로 살펴보는 대신 팀은 브리프의 구체적인 항목에 따라 일치한 계정과 예외 목록을 얻습니다. 이를 통해 캠페인 시작 전 확인을 빠르게 진행하면서도 캠페인 적합성 판단은 담당 전문가에게 맡길 수 있습니다.

사람들

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

계속 읽으세요캠페인 시작 전 IG 프로필을 브리프와 대조하세요: API 검증
다음 기사 읽기

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

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

API 둘러보기