Aller au contenu
Twexapi
Français
Esc
↑↓naviguer↵ouvrir⌘Japerçu
Sur cette page

Scraper Twitter (X) en Python : tweets, abonnés et export CSV

Tutoriel Python : récupérez les tweets et abonnés publics de X (Twitter) avec l'API REST de TwexAPI, parcourez les pages et enregistrez-les en CSV. Sans navigateur, proxy ni compte X.

Ce guide récupère des données publiques de X (Twitter) depuis Python avec de simples requêtes HTTP. Vous recherchez des tweets avec les opérateurs de recherche avancée, parcourez les pages de résultats, exportez une liste d’abonnés et enregistrez le tout en CSV. Pas besoin de navigateur headless, de proxy ni de compte X : une clé d’API TwexAPI suffit.

Avant de commencer

  1. Créez un compte sur twexapi.io pour recevoir 20 000 Credits offerts, soit environ 4 000 lectures.
  2. Copiez votre clé d’API depuis le tableau de bord et exportez-la :
export TWEXAPI_KEY="twexapi_xxx"
pip install requests

Rechercher des tweets

L’endpoint de recherche avancée prend une liste de searchTerms, un sortBy à Latest ou Top, et un next_cursor pour la pagination. Chaque page renvoie jusqu’à 20 tweets.

import os
import time

import requests

API = "https://api.twexapi.io"
HEADERS = {"Authorization": f"Bearer {os.environ['TWEXAPI_KEY']}"}


def paginate(path, body, max_items):
    """POST a cursor endpoint until max_items rows or the last page."""
    items, cursor = [], ""
    while len(items) < max_items:
        res = requests.post(f"{API}{path}", headers=HEADERS, json={**body, "next_cursor": cursor}, timeout=30)
        res.raise_for_status()
        page = res.json()
        items += [row for row in page.get("data", []) if row]
        cursor = page.get("next_cursor")
        if not page.get("has_next_page") or not cursor:
            break
        time.sleep(5)  # free Starter plan: 1 request per 5 seconds; paid plans allow 5+ per second
    return items[:max_items]


tweets = paginate(
    "/twitter/advanced_search/page",
    {"searchTerms": ["openai", "lang:en", "min_faves:100", "since:2026-10-01"], "sortBy": "Latest"},
    max_items=200,
)
print(len(tweets), "tweets")

searchTerms accepte les mêmes opérateurs que la barre de recherche de X :

Opérateur Exemple Signification
from: from:nasa Publications d’un compte
since: / until: since:2026-10-01 Période
lang: lang:fr Langue
min_faves: min_faves:100 Nombre minimal de j’aime
-filter:replies Exclure les réponses

Enregistrer les tweets en CSV

import csv

with open("tweets.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["tweet_id", "created_at", "user", "likes", "retweets", "text"])
    for t in tweets:
        writer.writerow([
            t.get("tweet_id"),
            t.get("created_at"),
            (t.get("user") or {}).get("screen_name"),
            t.get("favorite_count"),
            t.get("retweet_count"),
            (t.get("text") or "").replace("\n", " "),
        ])

Avec utf-8-sig, les accents et les emojis s’affichent correctement dans Excel.

Récupérer les abonnés

L’endpoint des abonnés utilise la même pagination par curseur : la fonction paginate fonctionne telle quelle.

followers = paginate("/twitter/followers/page", {"screen_name": "nasa"}, max_items=1000)

with open("followers.csv", "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["username", "name", "followers", "location", "bio"])
    for u in followers:
        writer.writerow([u.get("username"), u.get("name"), u.get("followersCount"), u.get("location"), u.get("description")])

Coût

Une lecture courante coûte 5 Credits, soit environ 0,05 $ pour 1 000 tweets ou abonnés. Les 200 tweets et 1 000 abonnés de l’exemple coûtent environ 0,06 $ au total. Voir les tarifs pour le détail.

Pourquoi pas Selenium, Playwright ou twscrape ?

Depuis que X a fermé l’accès invité début 2024, les scrapers basés sur un navigateur et les outils open source ont besoin de comptes X connectés et de proxys rotatifs, et ils cassent à chaque changement du site. Une API vous retire cette maintenance. Pour une comparaison plus complète, voir Scraper Twitter auto-hébergé vs TwexAPI.

Étapes suivantes

Cette page vous a-t-elle été utile ?