피드로 돌아가기
Dev.toBackend
원문 읽기
TikTok의 JavaScript 렌더링, 디바이스 핑거프린팅, 암호화된 API 파라미터를 우회하기 위해 웹 엔드포인트 데이터 추출과 Playwright 브라우저 자동화를 조합한 스크래핑 구현
How to Scrape TikTok: Videos, Profiles, and Trending Content
AI 요약
Context
TikTok은 공격적인 안티스크래핑 조치(Heavy JavaScript 렌더링, 디바이스 핑거프린팅, 암호화된 API 파라미터, 빈번한 봇 방지 업데이트)를 적용하고 있어 데이터 수집이 어렵다.
Technical Solution
- 웹 앱의 JSON 데이터 추출:
__UNIVERSAL_DATA_FOR_REHYDRATION__스크립트 태그에서 정규표현식으로 JSON 파싱 후 사용자 정보 획득 - Playwright 동적 콘텐츠 수집: headless 크롬 브라우저 실행 후
network_idle대기 조건으로 페이지 로딩 완료 확인 - 페이지 스크롤 자동화:
window.scrollTo()를 3회 반복 실행해 동적으로 로드되는 비디오 요소 수집 - 트렌드 콘텐츠 크롤링:
data-e2e속성을 기반으로 해시태그 이름과 조회수 추출 - 데이터 저장 및 분석: CSV 형식으로 저장하고 정규표현식으로 해시태그 추출 후 Counter로 상위 20개 통계
- 프록시 로테이션: ScraperAPI의 JavaScript 렌더링 및 자동 프록시 로테이션 활용, ThorData로 주거용 IP 제공
- 모니터링: ScrapeOps로 스크래퍼 상태 추적 및 플랫폼 방어 변화에 대한 즉시 알림
Key Takeaway
브라우저 자동화(Playwright)와 프록시 로테이션을 결합하면 공격적 안티봇 조치가 있는 플랫폼에서도 데이터 수집이 가능하지만, 플랫폼 정책 준수(공개 콘텐츠만, 비공개 계정 제외, 개인정보보호법 준수)와 모니터링을 통한 지속적 유지보수가 필수이다.
실천 포인트
웹 스크래핑이 필요한 엔지니어는 정적 데이터는 웹 엔드포인트 추출로 빠르게 수집하고, 동적 콘텐츠는 Playwright의 `networkidle` 대기와 반복 스크롤로 완전한 페이지 로딩을 보장한 후 `data-e2e` 속성 기반 선택자로 수집하며, ScraperAPI 또는 프록시 로테이션으로 차단을 회피할 수 있다.