Instagram과 TikTok은 스크래핑에서 가장 어려운 두 주류 대상입니다 — Google보다, Amazon보다 어렵습니다. 둘 다 공격적인 IP 점수화를 실행하고, 둘 다 여러 계층에서 클라이언트를 지문화하며, 둘 다 소프트 블록으로 유명합니다: 깔끔한 403 대신 로그인 벽, 빈 JSON, "challenge_required", 또는 조용히 잘린 결과를 받게 됩니다. 스크래퍼는 "작동"하는데 데이터는 쓰레기입니다.
이 가이드는 2026년 각 플랫폼이 실제로 당신을 어떻게 차단하는지, 살아남는 프록시 설정, 그리고 계정과 세션을 살아 있게 유지하는 요청 패턴을 다룹니다. (스크래핑이 아니라 멀티계정 관리에 대해서는 AdsPower/Multilogin과 GoLogin/Dolphin Anty 가이드를 참고하세요.)
challenge_required를 반환합니다. Instagram의 공유/남용된 주거용 IP에 대한 관용도 낮습니다 — 여기서는 풀 품질이 거의 어디보다 더 중요합니다.X-Bogus/서명 파라미터를 요구합니다. 순수 HTTP 스크래핑은 몇 주마다 로테이션되는 서명을 역공학해야 한다는 뜻입니다 — 대부분의 팀은 대신 진짜 브라우저(Playwright)를 돌려 JSON 응답을 가로챕니다.itemList 응답).# One identity = one sticky session, country-pinned
socks5h://USERNAME:[email protected]:913
요청별 로테이션은 낮은 볼륨의 익명 공개 페이지에는 괜찮습니다. 세션 쿠키나 로그인이 관여하는 순간, sticky로 전환하세요 — 쿠키와 IP는 하나의 신원으로 함께 움직여야 합니다(이유).
from curl_cffi import requests
PROXY = {"https": "socks5h://USERNAME:[email protected]:913"}
# Public profile JSON (no login) - impersonate Chrome's TLS
r = requests.get(
"https://www.instagram.com/api/v1/users/web_profile_info/?username=nasa",
impersonate="chrome",
headers={"X-IG-App-ID": "936619743392459"},
proxies=PROXY,
)
data = r.json()["data"]["user"]
print(data["edge_followed_by"]["count"])
상태 코드가 아니라 응답을 보세요: {"data": null}인 200이나 /accounts/login/으로의 리디렉션은 이 IP의 예산이 소진되었다는 뜻입니다 — 신원을 로테이션하고, 백오프하고, 재개하세요.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME", "password": "PASSWORD",
})
page = browser.new_page()
items = []
# Let TikTok's own JS sign the requests; we just read the answers
page.on("response", lambda res:
items.extend(res.json().get("itemList", []))
if "/api/post/item_list" in res.url else None)
page.goto("https://www.tiktok.com/@nasa")
for _ in range(5):
page.mouse.wheel(0, 2500)
page.wait_for_timeout(1800) # human-ish scroll cadence
print(len(items), "videos captured")
이는 서명 역공학을 통째로 우회합니다: 페이지가 유효한 X-Bogus를 직접 생성하고, 당신은 JSON을 수확합니다. 프록시는 브라우저 실행 시 설정해야 합니다 — 인증 특이사항은 Playwright 프록시 인증에서 다룹니다.
challenge_required, hasMore: true인데 빈 itemList.| TikTok | ||
|---|---|---|
| 최적 접근 경로 | 웹 GraphQL/API 엔드포인트, curl_cffi | Playwright + 응답 가로채기 |
| 프록시 유형 | 신원별 주거용 sticky | 주거용, 시장에 지역 일치 |
| 데이터센터 IP | 로그인 벽 / 챌린지 | 즉각 캡차 |
| 소프트 블록 신호 | 로그인 리디렉션, challenge_required, null 데이터 | 빈 itemList, 캡차 페이지 |
| 지역 민감도 | 중간 | 높음 — 콘텐츠가 국가별로 다름 |
신규 사용자는 가입 시 500MB를 받고, 첫 충전 시 추가 보너스를 받습니다. 기간 한정 혜택입니다.