트럼프 Truth Social 파싱 방법 Python 완전 가이드 2026

최종 업데이트: 2026년 4월 17일 · 10분 읽기 · 무료

Truth Social 파싱의 기술적 기반: 플랫폼 구조 이해

Truth Social은 Mastodon 오픈소스 프로토콜을 기반으로 구축된 소셜 미디어 플랫폼입니다. 이 사실이 파싱 전략에 중요한 함의를 가집니다. Mastodon은 ActivityPub 프로토콜을 사용하며, 공개 계정의 게시물에 접근하는 표준화된 API 엔드포인트가 존재합니다. 트위터(X)와 달리 유료 API 없이도 공개 데이터에 접근할 수 있는 경로가 있다는 의미입니다.

그러나 Truth Social의 프론트엔드는 React 기반의 싱글 페이지 애플리케이션(SPA)으로 구현돼 있어 일반적인 HTTP 요청만으로는 게시물 내용을 수집할 수 없습니다. 서버가 HTML을 반환하더라도 실제 게시물 데이터는 JavaScript가 렌더링한 이후에야 DOM에 나타납니다. 따라서 파싱 방법은 크게 세 가지로 나뉩니다. RSS 피드 폴링, Mastodon API 직접 호출, Playwright/Selenium을 이용한 헤드리스 브라우저 스크래핑입니다.

2026년 현재 세 가지 방법 모두 작동하지만 각각의 지연 시간, 데이터 풍부도, 유지보수 복잡성이 다릅니다. 트레이딩 알림 목적으로는 RSS 피드 방식이 구현 단순성과 신뢰성의 균형에서 가장 실용적입니다. API 방식은 더 구조화된 데이터를 제공하며, Playwright 방식은 가장 낮은 지연을 달성하지만 유지 비용이 높습니다.

방법 1: RSS 피드 폴링 (추천 시작점)

Truth Social의 RSS 피드는 https://truthsocial.com/@realDonaldTrump.rss에서 접근할 수 있습니다. 이 피드는 최근 20~40개의 게시물을 Atom/RSS 2.0 형식으로 제공합니다. Python의 feedparser 라이브러리를 사용하면 10줄 코드로 게시물 목록을 수집할 수 있습니다.

기본 구조는 다음과 같습니다. feedparser.parse(RSS_URL)로 피드를 가져오고, entries 리스트를 순회하면서 각 게시물의 id(고유 식별자), title(게시물 텍스트), published(게시 시간)를 추출합니다. 마지막으로 처리한 게시물 ID를 변수나 파일에 저장하고, 다음 폴링 주기에서 새 ID가 등장하면 알림을 발송하는 구조입니다.

폴링 주기는 트레이딩 목적에서 30초가 현실적인 최솟값입니다. 10초 미만으로 줄이면 Truth Social의 속도 제한에 걸릴 위험이 있습니다. 요청 헤더에 실제 브라우저 User-Agent를 설정하고, requests 세션 객체를 재사용하면 연결 오버헤드를 줄일 수 있습니다. 에러 처리로 ConnectionError, Timeout 예외를 반드시 잡아야 하며, 네트워크 오류 시 지수 백오프(exponential backoff)로 재시도하는 로직이 24시간 안정적 운용의 핵심입니다.

방법 2: Mastodon API 직접 호출

Truth Social이 Mastodon 호환 API를 노출한다는 점을 활용하면 RSS보다 더 구조화된 데이터를 얻을 수 있습니다. 먼저 트럼프 계정의 Mastodon 계정 ID를 확인해야 합니다. https://truthsocial.com/api/v1/accounts/lookup?acct=realDonaldTrump 엔드포인트로 계정 정보를 조회하면 숫자 ID를 얻을 수 있습니다.

계정 ID를 확인한 후 https://truthsocial.com/api/v1/accounts/{ID}/statuses?limit=20으로 최신 게시물을 JSON 형식으로 수집합니다. RSS 대비 장점은 게시물의 좋아요 수, 리포스트 수, 첨부 미디어 정보, 링크 카드 메타데이터 등 풍부한 데이터를 구조화된 형식으로 받을 수 있다는 것입니다. 단, 이 엔드포인트도 인증 없이 접근 시 속도 제한이 적용됩니다.

스트리밍 WebSocket 엔드포인트(wss://truthsocial.com/api/v1/streaming)를 활용하면 폴링 없이 실시간으로 새 게시물 이벤트를 수신할 수 있습니다. 이 방식은 이론적으로 가장 낮은 지연을 달성하며, 인증된 계정이 있다면 공개 타임라인 스트리밍이 가능합니다. 단, WebSocket 연결 안정성 관리와 재연결 로직 구현이 필요합니다.

방법 3: Playwright 헤드리스 브라우저 스크래핑

위의 두 방법이 작동하지 않거나 더 낮은 지연이 필요할 때 Playwright를 사용합니다. Playwright는 Chromium, Firefox, WebKit을 헤드리스 모드로 제어할 수 있는 Microsoft의 오픈소스 라이브러리입니다. pip install playwright && playwright install chromium으로 설치합니다.

기본 동작 원리는 헤드리스 Chromium이 Truth Social을 일반 사용자처럼 방문하고, 페이지가 완전히 렌더링된 후 DOM에서 게시물 요소를 선택해 텍스트를 추출하는 것입니다. page.goto()로 트럼프 프로필 페이지를 열고, page.wait_for_selector()로 게시물 로딩을 기다린 뒤, page.query_selector_all()로 게시물 요소를 수집합니다. CSS 선택자나 XPath를 사용해 게시물 텍스트, 타임스탬프, URL을 추출합니다.

Playwright 방식의 실전 운용 시 주의사항이 있습니다. 헤드리스 브라우저 감지(bot detection) 우회를 위해 playwright-stealth 패키지를 추가 설치하는 것이 권장됩니다. 장시간 실행 시 메모리 누수 방지를 위해 주기적으로 브라우저 컨텍스트를 재생성해야 합니다. 2~4GB RAM의 VPS에서 메모리 사용량을 모니터링하는 것이 안정적 운용의 전제 조건입니다.

Truth Social 파싱 방법 비교 (2026년 기준)
방법 지연 시간 구현 난이도 데이터 풍부도 안정성 VPS 최소 사양
RSS 폴링 30~90초 초급 기본 텍스트 높음 512MB RAM
Mastodon API 15~60초 초~중급 메타데이터 포함 보통 512MB RAM
WebSocket 스트리밍 1~5초 중급 완전한 데이터 보통 1GB RAM
Playwright 스크래핑 5~15초 중~고급 완전한 데이터 낮음 2GB RAM

파싱 파이프라인을 텔레그램 알림과 연결하기

파싱 로직이 완성되면 텔레그램 알림 시스템과 연결해 실용적인 트레이딩 도구로 만들 수 있습니다. 전체 파이프라인은 데이터 수집(RSS/API/Playwright) → 키워드 필터링 → 신호 분류 → 텔레그램 전송의 4단계로 구성됩니다.

키워드 필터링 단계에서는 모든 게시물을 텔레그램으로 전송하는 것보다 트레이딩 관련 게시물만 필터링하는 것이 실용적입니다. 관세·무역(tariff, trade, China, Canada, Mexico), 기술 규제(semiconductor, chips, AI, export control), 암호화폐(Bitcoin, crypto, digital assets), 에너지(oil, energy, OPEC), 방산(military, defense) 등의 키워드 딕셔너리를 구성합니다. 게시물 텍스트에 해당 키워드가 포함되면 카테고리 레이블을 붙여 텔레그램 메시지에 포함시킵니다.

텔레그램 메시지 포맷은 정보 밀도와 가독성의 균형이 중요합니다. 카테고리 아이콘, 게시 시간(한국 시간 KST 변환), 게시물 텍스트 앞 100자, Truth Social 링크를 포함하는 메시지 형식이 트레이더들 사이에서 검증된 표준입니다. asyncio를 활용한 비동기 구조로 파싱과 전송을 병렬 처리하면 지연을 최소화할 수 있습니다.

자주 묻는 질문 (FAQ)

Truth Social RSS 피드 URL은 무엇인가요?

트럼프의 공개 Truth Social 계정에 대한 RSS 피드는 https://truthsocial.com/@realDonaldTrump.rss 형식으로 접근할 수 있습니다. 이 피드는 최신 게시물을 XML 형식으로 제공하며, feedparser 등의 Python 라이브러리로 쉽게 파싱할 수 있습니다. Truth Social의 정책 변경으로 RSS 피드 접근이 제한될 수 있으므로 정기적으로 작동 여부를 확인하세요.

Playwright와 requests 중 어느 것이 Truth Social 파싱에 더 적합한가요?

Truth Social은 JavaScript 렌더링이 필요한 동적 웹 앱이므로 requests 단독으로는 게시물 내용을 수집하기 어렵습니다. RSS 피드가 작동하는 경우에는 feedparser + requests만으로 충분하며, 더 낮은 지연이 필요한 경우에만 Playwright를 사용하는 구조가 효율적입니다.

Truth Social 파싱 시 속도 제한(rate limiting)을 피하는 방법은 무엇인가요?

RSS 폴링 시 요청 간격을 최소 30초 이상으로 설정하고, 요청마다 1~3초의 랜덤 지연을 추가합니다. User-Agent 문자열을 실제 브라우저처럼 설정하고, 필요한 경우 IP 로테이션이나 프록시를 활용합니다.

Python으로 파싱한 게시물을 텔레그램으로 보내는 방법은?

python-telegram-bot 라이브러리를 설치하고, 텔레그램 BotFather에서 API 토큰을 받아 bot.send_message(chat_id=CHAT_ID, text=message)로 메시지를 전송합니다. VPS에서 systemd 서비스나 cron으로 24시간 실행하면 완전한 알림 시스템이 완성됩니다.

파싱된 게시물에서 트레이딩 관련 키워드를 자동으로 필터링하는 방법은?

tariff, trade war, China, sanctions, Bitcoin, crypto, semiconductor 등의 핵심 키워드 딕셔너리를 만들어 포함 여부를 검사합니다. 더 정교하게 분류하려면 OpenAI API나 로컬 NLP 모델로 게시물을 카테고리별로 자동 분류할 수 있습니다.

VPS 없이 무료로 파싱 봇을 24시간 운용할 수 있는 방법이 있나요?

GitHub Actions의 cron 스케줄로 5분마다 파이프라인을 실행할 수 있으며 월 무료 할당량 내에서 운용 가능합니다. Google Cloud Run, AWS Lambda도 옵션입니다. 단, 실시간 트레이딩 목적으로는 VPS가 안정성 측면에서 우위입니다.

Truth Social API를 직접 호출하는 방법이 있나요?

Truth Social은 Mastodon 프로토콜 기반으로 https://truthsocial.com/api/v1/accounts/{account_id}/statuses 형식의 엔드포인트로 최신 게시물을 JSON 형식으로 수집할 수 있습니다. RSS보다 구조화된 데이터와 메타데이터를 제공합니다.

파싱 봇을 만들 때 주의해야 할 법적 사항은 무엇인가요?

공개적으로 게시된 정보를 수집하는 것 자체는 한국 법상 위법이 아닙니다. Truth Social의 이용 약관은 자동화된 스크래핑을 제한하고 있어 서비스 이용 계약상 문제가 될 수 있습니다. 개인 트레이딩 목적의 알림 수집과 활용은 자본시장법상 이슈가 없으며 FSC 규제 대상이 아닙니다.