comment parser les posts trump truth social avec python 2026
Architecture de Truth Social et méthodes d'accès aux données
Truth Social, lancé par Trump Media & Technology Group en 2022, est construit sur une base open-source : le framework Mastodon. Ce choix technique n'est pas anodin pour les développeurs, car Mastodon expose nativement une API REST bien documentée, avec authentification OAuth 2.0. Comprendre cette architecture est la première étape pour construire un scraper efficace et robuste.
Il existe trois grandes voies d'accès aux données de Truth Social : le flux RSS public (sans authentification), l'API Mastodon compatible (avec compte OAuth), et le scraping web direct via un navigateur automatisé comme Playwright. Chaque méthode présente des compromis différents en termes de latence, de richesse des données et de complexité de maintenance.
Le compte de Trump (@realDonaldTrump) est public, ce qui signifie que ses posts sont accessibles sans compte via le RSS. L'URL du flux est https://truthsocial.com/@realDonaldTrump.rss. Ce flux est mis à jour à chaque nouvelle publication, avec un délai de propagation de 30 à 90 secondes selon la charge des serveurs de Truth Social.
Pour un trader qui cherche à automatiser ses alertes, l'enjeu est double : minimiser la latence tout en maintenant un système stable qui ne tombera pas en panne un vendredi soir quand Trump décide de publier une annonce commerciale majeure. La fiabilité prime sur la complexité.
Méthode 1 — Scraping RSS avec feedparser
C'est la méthode la plus simple et la plus stable. La bibliothèque Python feedparser parse les flux RSS en quelques lignes de code. Voici un script minimal fonctionnel :
import feedparser
import time
import requests
FEED_URL = "https://truthsocial.com/@realDonaldTrump.rss"
TELEGRAM_TOKEN = "VOTRE_TOKEN_BOT"
CHAT_ID = "VOTRE_CHAT_ID"
MOTS_CLES = ["tariff", "China", "trade", "market", "gold", "sanctions"]
derniers_ids = set()
def envoyer_telegram(message):
url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
requests.post(url, json={"chat_id": CHAT_ID, "text": message})
while True:
feed = feedparser.parse(FEED_URL)
for entry in feed.entries:
if entry.id not in derniers_ids:
derniers_ids.add(entry.id)
texte = entry.summary.lower()
if any(mot in texte for mot in MOTS_CLES):
envoyer_telegram(f"TRUMP POST:\n{entry.summary}\n{entry.link}")
time.sleep(30) # polling toutes les 30 secondes
Ce script surveille le flux RSS, identifie les nouveaux posts via leur identifiant unique, filtre les posts contenant des mots-clés financiers et envoie une alerte Telegram. Il est suffisant pour un usage personnel sur une machine toujours allumée ou un VPS d'entrée de gamme.
Méthode 2 — API Mastodon avec authentification OAuth
L'API Mastodon offre un accès plus riche : statistiques d'engagement (likes, repartages), médias attachés, métadonnées des comptes suivis. Elle nécessite la création d'une application dans les paramètres Truth Social et l'obtention d'un token OAuth.
Le endpoint principal est https://truthsocial.com/api/v1/accounts/[ID_COMPTE]/statuses. L'ID du compte de Trump peut être obtenu via https://truthsocial.com/api/v1/accounts/lookup?acct=realDonaldTrump. La bibliothèque Python Mastodon.py simplifie l'authentification et les appels API.
| Méthode | Latence | Données disponibles | Authentification requise | Complexité |
|---|---|---|---|---|
| RSS feedparser | 30–90 s | Texte, lien, date | Non | Très faible |
| API Mastodon | 5–15 s | Texte, médias, engagement | OAuth (compte requis) | Faible |
| Playwright scraping | 5–20 s | Tout contenu visible | Optionnelle | Élevée |
| TrumpBot API | 3–8 s | Texte + score impact | Token TrumpBot Pro | Très faible |
Méthode 3 — Playwright pour le scraping dynamique
Playwright est un outil de test de navigateurs développé par Microsoft, qui permet de contrôler Chrome, Firefox ou WebKit depuis Python. Il est particulièrement utile pour les sites qui chargent leur contenu via JavaScript — ce qui est le cas de Truth Social, bâti sur React.
L'installation est simple : pip install playwright && playwright install chromium. Le script ci-dessous ouvre un navigateur invisible, navigue vers le profil de Trump et extrait les posts les plus récents :
from playwright.async_api import async_playwright
import asyncio
async def scraper_trump():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
await page.goto("https://truthsocial.com/@realDonaldTrump")
await page.wait_for_selector('[data-testid="status"]')
posts = await page.query_selector_all('[data-testid="status"]')
for post in posts[:3]:
texte = await post.inner_text()
print(texte[:200])
await browser.close()
asyncio.run(scraper_trump())
Playwright est puissant mais fragile : Truth Social peut modifier ses sélecteurs CSS ou ajouter des protections anti-bot à tout moment. Pour un système en production, prévoyez une gestion des erreurs robuste et des alertes en cas d'échec du scraping.
Hébergement, maintenance et bonnes pratiques
Pour un système d'alertes disponible 24h/24, vous avez besoin d'un serveur toujours actif. Les options les moins chères et les plus fiables sont les VPS à 4-6 $/mois chez Hetzner (serveurs en Allemagne et Finlande), OVH Cloud (Roubaix, Strasbourg, Paris) ou DigitalOcean (New York). Ubuntu 22.04 LTS est recommandé pour sa stabilité.
Sur votre VPS, configurez votre script Python comme un service systemd qui redémarre automatiquement en cas d'erreur. Créez un fichier /etc/systemd/system/trump-alert.service avec les paramètres Restart=always et RestartSec=10. Activez le service avec systemctl enable trump-alert && systemctl start trump-alert.
Pour la gestion des erreurs, ajoutez un mécanisme de détection des silences anormaux : si aucun nouveau post n'est détecté depuis plus de 6 heures pendant les heures ouvrées américaines, envoyez-vous une alerte de panne. Trump publie en moyenne 12 fois par jour en semaine — un silence de 6 heures est statistiquement suspect et indique probablement un problème technique.
Enfin, respectez les limites de requêtes. Le flux RSS de Truth Social ne devrait pas être interrogé plus d'une fois toutes les 30 secondes. Pour l'API Mastodon, Truth Social impose une limite de 300 requêtes toutes les 5 minutes. Si vous dépassez ces limites, votre IP peut être temporairement bloquée.
Questions fréquentes
Quel est le moyen le plus simple de commencer à parser Truth Social ?
Le flux RSS public est le point de départ le plus simple. Il suffit d'utiliser feedparser en Python : import feedparser; feed = feedparser.parse('https://truthsocial.com/@realDonaldTrump.rss'). Aucun compte n'est nécessaire.
Playwright est-il vraiment nécessaire pour scraper Truth Social ?
Playwright est utile quand vous avez besoin d'informations non disponibles dans le flux RSS, comme les republications, les statistiques d'engagement ou les réponses. Pour les posts principaux, le RSS suffit dans la plupart des cas.
Quelle est la latence atteignable avec un scraper Python maison ?
Avec une boucle de polling toutes les 5 secondes et un VPS à proximité géographique, la latence peut descendre à 8-20 secondes. Le RSS donne plutôt 60-90 secondes.
Le scraping de Truth Social est-il légal en France ?
Le scraping de données publiquement accessibles est généralement légal, sous réserve de respecter les conditions d'utilisation et de ne pas surcharger les serveurs. Consultez un juriste pour un usage commercial.
Quel type de VPS recommandez-vous pour héberger un scraper Trump ?
Un VPS à 5-10 $/mois chez DigitalOcean, Hetzner ou OVH Cloud avec Ubuntu 22.04 est largement suffisant. Préférez une localisation aux États-Unis pour minimiser la latence réseau.
Comment envoyer les alertes vers Telegram depuis Python ?
Utilisez la bibliothèque python-telegram-bot. La méthode bot.send_message(chat_id=VOTRE_ID, text=message) suffit. Créez votre bot via @BotFather sur Telegram pour obtenir le token d'API.
Comment filtrer uniquement les posts liés aux marchés financiers ?
Définissez une liste de mots-clés : ['tariff', 'China', 'trade', 'market', 'gold', 'Fed', 'rate', 'sanction']. Comparez chaque nouveau post à cette liste avant d'envoyer l'alerte.
Existe-t-il une API officielle Truth Social pour les développeurs ?
Truth Social est basé sur Mastodon et expose une API compatible Mastodon. Elle nécessite un compte et une autorisation OAuth, mais offre des données plus riches que le RSS simple.