Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
Hier — 4 septembre 2026Généralistes

Nitter et XCancel sont morts, et l'explication est dans leur code

Par : Korben ✨
2 septembre 2026 à 08:51

Le 24 août dernier, X Corp. a envoyé une lettre de mise en demeure au développeur de Nitter et une autre à celui de XCancel (une instance célèbre de Nitter). Le délai accordé était très court (environ 24h), et depuis, les deux services sont hors ligne.

Alors que s'est-il passé ?

Nitter, c'était sept ans de travail bénévole pour lire les posts publics de Twitter puis de X sans avoir besoin de compte, sans pub, sans JavaScript et surtout sans laisser son adresse IP à Elon Musk et ses sbires. On remplaçait x.com par nitter.net dans l'URL, et on lisait ce qui nous intéressait. Y'avait même des extensions de redirection automatique qui le faisaient pas à notre place. Et XCancel qui venait de fêter ses 2 ans, c'était tout pareil !

Aujourd'hui la page d'accueil de XCancel affiche ces 4 lignes qui disent en gros que le service est arrêté jusqu'à nouvel ordre. Celle de Nitter n'est pas plus bavarde et son mainteneur, zedeus, cherche un avocat et refuse de commenter.

Notez qu'aucun tribunal n'a été saisi et qu'une simple lettre a suffi.

Ce que X reproche à ces 2 services, c'est un "usage illicite et un contournement de son API", plus une violation du Texas Harmful Access by Computer Act et du Lanham Act. TechCrunch, qui a pu lire le courrier , rapporte une accusation plus précise qui est que Nitter aurait accédé à des comptes X et à des jetons de session pour récupérer le contenu en douce.

Aux États-Unis, en tout cas, "aspirer" des pages web publiques n'a rien de criminel. Mais le problème, c'est que Nitter ne fonctionne plus comme ça depuis des années. Si on analyse son code, on se rend compte que depuis que Twitter a supprimé les comptes invités début 2024, Zedeus, le développeur de Nitter, a mis en place un tout autre système.

Pour contourner les limites imposées par X.com, il a développé un script tools/get_session.py qui prend en arguments un identifiant X, un mot de passe, un secret à double facteur et un chemin de fichier.

Et là-dedans, il embarque en dur une paire de clés API, se déclare auprès des serveurs de X comme LE client Twitter officiel pour Android en version 10.21 tournant sur un OnePlus A3010, fait passer le flux de connexion par cloudscraper, génère le code à double facteur à la volée, et récupère un jeton OAuth qu'il écrit ensuite dans un fichier.

Au niveau des identifiants, c'est l'hébergeur de l'instance qui les fournit puisque depuis la coupure de 2024, faire tourner Nitter imposait de le relier à un vrai compte X. On est donc très loin du robot anonyme qui lit une page publique. C'est un client officiel simulé, avec des identifiants valides, et c'est exactement ça que la lettre de mise en demeure décrit.

Donc voilà, le problème est bien plus compliqué que du scraping simple. Ce sera donc à un juge de trancher sur le fond.

Depuis, le dépôt GitHub est passé en lecture seule, archivé et selon Zedeus, d'autres instances ont reçu des courriers du même genre. De son côté, X ne s'est pas encore exprimé publiquement sur cette affaire.

Reste la question qui nous intéresse : On fait comment pour lire la merde fasciste de X sans compte maintenant ? Bah honnêtement, y'a pas grand-chose... Moi, je vous recommande d'arrêter d'aller là-dessus pour votre propre bien-être. Mais si vraiment vous êtes accro, le pont ActivityPub bird.makeup répond toujours présent et permet de suivre un compte X public depuis Mastodon. Toutefois, il ne vous affichera pas un fil de discussion direct dans le navigateur comme le faisait XCancel ou Nitter.

Après pour un post précis, il reste éventuellement la Wayback Machine, à condition que quelqu'un ait archivé le tweet avant. Sinon, bah faudra vous reconnecter sur X à l'ancienne avec votre compte...

Source : Techdirt

À partir d’avant-hierGénéralistes

Cloudflare /crawl - Aspirez un site entier en un seul appel API

Par : Korben
11 mars 2026 à 13:47

Crawler un site entier, ça devrait pas être aussi compliqué. Et pourtant, entre les scripts maison qui cassent tous les 2 jours et les headless browsers qui bouffent de la RAM comme pas permis, c'est assez la galère ! Du coup, Cloudflare, dans sa grande bonté (lol) vient de sortir un endpoint /crawl (en open beta) dans la section Browser Rendering qui simplifie tout ça... vous balancez une URL dessus et hop, ça ASPIRE tout le site (oui oui).

En gros, vous envoyez une requête POST avec l'URL de départ, et le service se charge de découvrir les pages (via le sitemap, les liens internes, ou les deux), de les générer dans un navigateur headless, et de vous renvoyer le contenu en HTML, Markdown ou même en JSON structuré grâce à Workers AI. Le tout de manière asynchron ! Vous, vous récupérez juste un job ID et vous revenez plus tard chercher les résultats quand c'est prêt.

Créer votre token API

Avant toute chose, il vous faut un token API Cloudflare avec la permission "Browser Rendering - Edit". Rendez-vous dans votre dashboard Cloudflare, section API Tokens, et créez-en un nouveau. Notez aussi votre Account ID (visible dans l'URL du dashboard ou dans la section Overview de n'importe quel domaine).

Lancer un crawl

Là, ensuite c'est hyper simple. Un seul appel curl suffit :

curl -X POST "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl" \
 -H "Authorization: Bearer VOTRE_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"url": "https://example.com"}'

Et là, vous récupérez un job ID en retour (genre c7f8s2d9-a8e7-4b6e-...). Par défaut, le crawler va explorer 10 pages max avec une profondeur quasi illimitée. Mais bon, 10 pages c'est vite limité, du coup vous pouvez ajuster tout ça comme ceci :

curl -X POST "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl" \
 -H "Authorization: Bearer VOTRE_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
 "url": "https://example.com/docs",
 "limit": 50,
 "depth": 3,
 "formats": ["markdown"],
 "render": false,
 "options": {
 "includePatterns": ["https://example.com/docs/**"],
 "excludePatterns": ["**/changelog/**"]
 }
 }'

Le paramètre render: false permet de récupérer le HTML brut sans lancer de navigateur headless, c'est carrément plus rapide pour les sites statiques. Sachez quand même que pendant la beta, ce mode n'est pas facturé ! Youpi !

Récupérer les résultats

Une fois le crawl lancé, vous interrogez le job avec un GET :

curl "https://api.cloudflare.com/client/v4/accounts/VOTRE_ACCOUNT_ID/browser-rendering/crawl/VOTRE_JOB_ID" \
 -H "Authorization: Bearer VOTRE_TOKEN"

Vous obtenez alors le statut (running, completed, errored...) et la liste des pages crawlées avec leur contenu dans le format demandé. Si le résultat dépasse 10 Mo, un curseur de pagination est inclus pour récupérer la suite.

Les options qui tuent

Y'a quelques paramètres bien pensés pour les cas plus avancés :

  • modifiedSince et maxAge pour du crawling incrémental (ne re-crawler que les pages modifiées récemment)
  • source: "sitemaps" pour ne suivre que le sitemap au lieu de parser tous les liens
  • jsonOptions avec un prompt Workers AI pour extraire des données structurées automatiquement (genre récupérer le nom, le prix et le stock de 500 fiches produit d'un e-commerce en une seule passe)
  • rejectResourceTypes pour bloquer images, fonts et CSS et accélérer le crawl
  • authenticate pour les sites protégés par une auth HTTP basique

Attention quand même, y'a quelques subtilités à savoir. Un job peut tourner 7 jours max et les résultats sont conservés 14 jours seulement, du coup pensez à les récupérer vite. Le crawler respecte le robots.txt (y compris le crawl-delay), et si un site vous bloque, les URLs apparaissent comme "disallowed" dans les résultats. Sauf que ça ne vous dit pas pourquoi, faudra aller checker le robots.txt vous-même.

Voilà, cette "merveille" pour les scrappeurs fous est dispo sur les plans Free et Paid de Workers , et si vous voulez aller plus loin, Cloudflare propose aussi des endpoints pour les screenshots, les PDF et le scraping ciblé .

Voilà, un petit crawler inclus dans le plan Free de Workers, qui respecte le robots.txt et qui sort du Markdown ou du JSON structuré... je vais surveiller ça de près !

Botasaurus - Le scraper qui rend Cloudflare aussi facile à contourner qu'un CAPTCHA de 2005

Par : Korben
12 août 2025 à 11:21

Hey les scrapers de l’espace là, vous en avez marre de vous battre contre Cloudflare comme si c’était le boss final d’un Dark Souls ? Et bien sûr, vous avez testé Selenium et Playwright mais vos bots se font démasquer plus vite qu’un menteur à l’Assemblée Nationale ? Alors ça tombe bien car j’ai trouvé votre nouveau meilleur ami, et il s’appelle Botasaurus.

Derrière ce nom de dinosaure se cache un framework Python open source, conçu pour le scraping web moderne. Créé par Omkar Cloud, il promet de faire passer vos bots pour des humains plus vrais que nature.

La première chose avec Botasaurus, c’est sa capacité à contourner les protections anti-bot. Il passe notamment la barrière de Cloudflare avec brio mais pas seulement, puisqu’il gère aussi très bien PerimeterX, BrowserScan, Fingerprint Bot Detection, et même les CAPTCHA Turnstile. Le créateur du framework a même publié une vidéo où il contourne tous ces systèmes en live. La grande classe !

Concernant Datadome, il semble cependant galérer encore un peu d’après les retours que j’ai eu.

Ce qui démarque Botasaurus, c’est surtout son approche “humane driver” car au lieu d’utiliser bêtement Selenium ou Playwright, le framework ajoute une couche d’humanisation qui simule des mouvements de souris réalistes, des temps de pause naturels, et même des patterns de navigation qui imitent un vrai utilisateur. Du coup vos bots passent incognito avec du style ^^.

Ce framework permet même d’économiser jusqu’à 97% sur les coûts de proxy. Comment ? Et bien en utilisant des requêtes fetch basées sur le navigateur au lieu de lancer un navigateur complet pour chaque requête. C’est malin et ça fait une sacrée différence sur la facture à la fin du mois.

Pour l’installation, c’est du Python classique :

python -m pip install --upgrade botasaurus

Et voici un exemple simple pour scraper un site :

from botasaurus.browser import browser, Driver

@browser
def scrape_heading_task(driver: Driver, data):
# Visite le site via Google Referrer (pour bypass Cloudflare)
driver.google_get(data['url'])

# Récupère le texte du titre
heading = driver.get_text('h1')

return {"heading": heading}

# Lance le scraping
scrape_heading_task()

Ce décorateur @browser gère automatiquement tout le setup du navigateur, les anti-détections, et même la sauvegarde des résultats en JSON. Comme ça, pas besoin de se prendre la tête avec la configuration.

Et pour les cas où vous avez besoin de contourner du Cloudflare plus agressif, il suffit d’ajouter un paramètre comme ceci :

driver.google_get(url, bypass_cloudflare=True)

D’après les benchmarks de ScrapingAnt, Botasaurus est plus furtif qu’undetected-chromedriver et puppeteer-stealth. C’est dire le niveau de sophistication atteint.

Un autre point fort de Botasaurus, c’est également la possibilité de transformer votre scraper en application desktop. En une journée, vous pouvez créer une app pour Windows, Mac et Linux avec une interface graphique complète. C’est génial, car ça vous éviter d’expliquer à vos clients comment lancer un script Python. Ils ont juste une app sur laquelle double-cliquer.

Le framework inclut aussi un serveur web intégré qui permet de créer une UI pour vos scrapers comme ça, avec quelques lignes de JavaScript, vous pouvez définir des formulaires d’input, des filtres, des exports en CSV/Excel, et même une API REST pour intégrer votre scraper ailleurs.

Ce framework brille donc particulièrement pour tout ce qui est :

  • Les sites avec protection Cloudflare basique à modérée
  • Le scraping local ou sur VPS avec peu de volume
  • La création rapide de scrapers avec UI
  • Les projets où l’anti-détection prime sur la performance pure

Par contre, pour du scraping massif à grande échelle ou contre des protections enterprise ultra-sophistiquées, vous devrez probablement combiner Botasaurus avec d’autres outils ou services.

Bref, c’est à tester !

Anubis - Protégez votre site web contre les scrapers IA en moins de 15 minutes

Par : Korben
16 mai 2025 à 09:37

Si votre site web est devenu le buffet à volonté préféré des bots de sociétés IA, débarquant par milliers, se servant dans votre bande passante et repartant sans même dire vous laisser un mot sur l’oreiller, alors j’ai une solution pour vous ! Ça s’appelle Anubis, et c’est un outil qui vérifie si vos visiteurs sont de vrais humains ou des aspirateurs à données déguisés.

Car oui, personne n’est épargné ! Par exemple, le bon vieux site kernel.org a dû mettre en place une protection contre ces scrapers qui menaçaient sa disponibilité et ce n’est pas un cas isolé. Codeberg, ScummVM, FreeCAD et même certains sites de l’ONU ont adopté la même solution pour rester en ligne face à cette nouvelle forme de DDoS “légitime”.

❌
❌