대규모로 Instagram 댓글 스크래핑하는 방법 — 100만 결과와 계속 증가
Source: Dev.to
Instagram의 공식 API는 실제 규모의 댓글 데이터를 필요로 할 경우 거의 쓸모가 없습니다. 레이트 제한이 거의 즉시 적용되고, OAuth 설정이 번거롭으며, 실제로 반환되는 데이터는 크게 필터링됩니다. 감성 분석, 인플루언서 리서치, 리드 생성, 혹은 NLP 파이프라인에 데이터를 공급하려는 사람들에게 공식 API는 전혀 만족스럽지 못합니다.
저는 Apify에서 Instagram 댓글 스크래퍼를 운영해 왔으며, 현재 1백만 개가 넘는 댓글을 수백 개의 포스트와 릴에서 처리했습니다. 이 글에서는 다음 내용을 다룹니다:
- 스크래퍼가 작동하는 방식
- 데이터가 어떤 형태인지
- 자체 Python 파이프라인에서 활용하는 방법
사람들이 실제로 이것을 사용하는 경우
| 사용 사례 | 대량 댓글 데이터가 중요한 이유 |
|---|---|
| Sentiment analysis | 통계적으로 의미 있는 결과를 얻기 위해서는 수천 개의 댓글이 필요합니다. 공식 API로는 이를 달성할 수 없습니다. |
| Influencer vetting | 브랜드는 가짜 참여(반복 텍스트, 높은 좋아요 비율, 봇 같은 사용자명)를 감지해야 합니다. 대량 데이터가 이러한 패턴을 드러냅니다. |
| Competitor research | 경쟁사의 상위 게시물에 대한 댓글을 분석하면 문제점, 기능 요청, 감성 격차를 파악할 수 있습니다. |
| Lead generation | 사람들은 종종 “어디서 살 수 있나요…?” 혹은 댓글에서 추천을 요청합니다. 스크래핑을 통해 이러한 따뜻한 리드를 대규모로 찾아낼 수 있습니다. |
| Academic & social research | 언어 패턴, 커뮤니티 행동, 담론 연구는 대규모 댓글 코퍼스에 의존합니다. |
| AI training data | 여러 언어의 깨끗하고 구조화된 대화 텍스트는 언어 모델 미세 조정에 완벽합니다. |
얻는 데이터
각 댓글은 다음 필드들을 포함하는 JSON 객체로 반환됩니다:
{
"postId": "3627347799613702778",
"postUrl": "https://www.instagram.com/p/DJW7ZrwxQJ6/",
"commentId": "17856813987670336",
"commentUrl": "https://www.instagram.com/p/DJW7ZrwxQJ6/c/17856813987670336/",
"text": "This is exactly what I was looking for",
"timestamp": 1772885404,
"likesCount": 14,
"userId": "63583756795",
"username": "example_user",
"userFullName": "Example User",
"ownerProfilePicUrl": "https://scontent.cdninstagram.com/…",
"isVerified": false,
"repliesCount": 2,
"replies": [
{
"commentId": "17856813987670337",
"text": "Same here!",
"username": "another_user",
"likesCount": 3,
"timestamp": 1772885500
}
]
}
각 댓글은 전체 텍스트, 타임스탬프, 좋아요 수, 댓글 작성자 사용자명, 인증 여부 및 중첩된 답글을 포함합니다. 전처리가 필요 없으며 — 출력은 깔끔하고 바로 활용할 수 있습니다.
파이썬 시작하기
스크래퍼는 Apify에서 실행됩니다. 무료 계정이 필요합니다 – 모든 계정에 월 $5 크레딧이 제공되며, 이는 테스트용으로 약 10 k개의 댓글을 수집하기에 충분합니다.
Apify 클라이언트 설치
pip install apify-client
기본 실행 – 단일 게시물에서 댓글 스크랩
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
run_input = {
"postUrls": [
"https://www.instagram.com/p/YOUR_POST_ID/"
],
"maxCommentsPerPost": 500,
"sortOrder": "popular"
}
run = client.actor("scrapesmith/instagram-comments-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["username"], "|", item["text"][:80])
대량 스크래핑 – 여러 게시물을 한 번에
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_API_TOKEN")
post_urls = [
"https://www.instagram.com/p/POST_ID_1/",
"https://www.instagram.com/p/POST_ID_2/",
"https://www.instagram.com/p/POST_ID_3/",
# 필요에 따라 추가
]
run_input = {
"postUrls": post_urls,
"maxCommentsPerPost": 1000,
"sortOrder": "newest"
}
run = client.actor("scrapesmith/instagram-comments-scraper").call(run_input=run_input)
dataset = client.dataset(run["defaultDatasetId"])
comments = list(dataset.iterate_items())
print(f"Total comments scraped: {len(comments)}")
비용 예시: $0.50 per 1 000 결과 → 100 000개의 댓글을 스크랩하면 $50이 듭니다. 받게 되는 데이터 양을 고려하면, 이는 어떤 대안보다도 훨씬 저렴합니다.
위 코드 스니펫 외에 추가 코드는 필요하지 않습니다.
대규모 실행 시 실용적인 팁
| 팁 | 세부 사항 |
|---|---|
| 댓글이 10개 이상인 게시물 대상 | 참여도가 매우 낮은 게시물이나 제한이 많이 걸린 계정은 빈 데이터 세트를 반환할 수 있습니다. |
sortOrder | "popular" → 가장 높은 참여 댓글을 먼저 표시 (감성 분석에 유용). "newest" → 가장 최신 댓글 (모니터링에 유용). |
| 답글이 중첩됨 | replies 배열이 기본적으로 포함됩니다. 데이터를 평탄화할 경우, 답글을 별도로 추출하는 것을 기억하세요. |
| 로그인이나 쿠키가 필요 없음 | 스크레이퍼는 완전히 공개 데이터만을 사용합니다. Instagram 계정, 세션 토큰, 프록시 설정이 필요하지 않습니다. |
| Pricing | 댓글 1,000개당 $0.50의 결과당 결제 방식입니다. 구독제도 없고 최소 사용량도 없습니다. 모든 신규 Apify 계정은 $5의 무료 크레딧을 제공받아 테스트할 수 있습니다. |
가격표
| 수량 | 비용 |
|---|---|
| 10,000 댓글 | $5.00 |
| 100,000 댓글 | $50.00 |
| 1,000,000 댓글 | $500.00 |
Try It
스크래퍼가 Apify 계정에서 실행될 준비가 되었습니다. API 토큰을 가져오고, 클라이언트를 설치한 뒤, 대규모로 댓글 데이터를 수집해 보세요!
Live on the Apify Store
- Instagram Comments Scraper —
scrapesmith/instagram-comments-scraper
My full actor catalogue (including YouTube Shorts, Instagram Hashtag, Google Maps Reviews, and more) is available at:
apify.com/scrapesmith
Custom scraper requests
특정 사이트나 워크플로우에 맞춘 맞춤형 스크래퍼가 필요하시면 Apify 프로필을 통해 연락 주세요.
Built and maintained by Scrape Smith
- 2.1K+ users
- 99%+ run success rate