Crawling API / Exercism

Scraper Exercism.
Chaque track, entièrement rendu.

Envoyez n'importe quelle URL Exercism et récupérez le HTML entièrement rendu, via des proxys résidentiels avec gestion anti-bot intégrée.
Ou obtenez du JSON structuré avec les scrapers exercism-serp, exercism-exercise, exercism-solutions et exercism-solution.

99 % de réussite140M IP résidentielles30 zones géographiques
URL ExercismHTML or JSONexercism.org/tracks/ruby/exercisesCrawlbaseRouterRenduExtraireHTML renduJSON structurécrawling-apiexercism-solutionexercism.org · rendu + parsé · 200
Flux de crawl en direct · Exercism1.24M req/minEn streaming
200exercism.org/tracks/go/exercisesFR128ms
200exercism.org/tracks/rust/exercisesFR139ms
200exercism.org/tracks/ruby/exercises/two-fer/solutionsGB166ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsSG161ms
200exercism.org/tracks/python/exercises/leap/solutionsCA109ms
200exercism.org/tracks/python/exercises/leap/solutionsES216ms
200exercism.org/tracks/go/exercises/weather-forecastAU49ms
200exercism.org/tracks/ruby/exercises/two-ferBR75ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsBR93ms
200exercism.org/tracks/go/exercises/weather-forecastAU57ms
200exercism.org/tracks/python/exercises/leap/solutionsJP214ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropIN208ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsCA114ms
200exercism.org/tracks/rust/exercises/reverse-string/solutions/gorbit99FR56ms
200exercism.org/tracks/python/exercises/leapIN164ms
200exercism.org/tracks/python/exercises/leapJP120ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropUS118ms
404exercism.org/tracks/rust/exercises/reverse-string/solutions/gorbit99JP139ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropJP82ms
200exercism.org/tracks/go/exercisesIN159ms
200exercism.org/tracks/go/exercisesAU144ms
200exercism.org/tracks/go/exercisesBR59ms
200exercism.org/tracks/ruby/exercises/two-fer/solutionsDE219ms
200exercism.org/tracks/python/exercises/leapFR181ms
200exercism.org/tracks/rust/exercisesJP84ms
200exercism.org/tracks/rust/exercises/reverse-stringBR148ms
200exercism.org/tracks/go/exercisesFR128ms
200exercism.org/tracks/rust/exercisesFR139ms
200exercism.org/tracks/ruby/exercises/two-fer/solutionsGB166ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsSG161ms
200exercism.org/tracks/python/exercises/leap/solutionsCA109ms
200exercism.org/tracks/python/exercises/leap/solutionsES216ms
200exercism.org/tracks/go/exercises/weather-forecastAU49ms
200exercism.org/tracks/ruby/exercises/two-ferBR75ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsBR93ms
200exercism.org/tracks/go/exercises/weather-forecastAU57ms
200exercism.org/tracks/python/exercises/leap/solutionsJP214ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropIN208ms
200exercism.org/tracks/ruby/exercises/high-scores/solutionsCA114ms
200exercism.org/tracks/rust/exercises/reverse-string/solutions/gorbit99FR56ms
200exercism.org/tracks/python/exercises/leapIN164ms
200exercism.org/tracks/python/exercises/leapJP120ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropUS118ms
404exercism.org/tracks/rust/exercises/reverse-string/solutions/gorbit99JP139ms
200exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthropJP82ms
200exercism.org/tracks/go/exercisesIN159ms
200exercism.org/tracks/go/exercisesAU144ms
200exercism.org/tracks/go/exercisesBR59ms
200exercism.org/tracks/ruby/exercises/two-fer/solutionsDE219ms
200exercism.org/tracks/python/exercises/leapFR181ms
200exercism.org/tracks/rust/exercisesJP84ms
200exercism.org/tracks/rust/exercises/reverse-stringBR148ms
01 Démo en direct

Quatre scrapers Exercism. Un JSON propre chacun.

Les quatre scrapers Exercism, tapés en direct. exercism-serp liste les exercices d'un track, exercism-exercise récupère un exercice avec ses instructions, exercism-solutions classe les soumissions de la communauté, et exercism-solution renvoie une solution publiée avec son code source. Changez d'onglet, ou survolez pour mettre en pause et lire.

prêt
touches 1-4 pour changer · cliquez pour mettre en pauselancez votre propre URL
Lancez votre première requête en quelques minutes. Jusqu'à 20 000 requêtes gratuites, sans carte bancaire.Commencer gratuitement
02 Capacités

Une API, chaque recoin d'Exercism.

Quatre scrapers dédiés couvrent les pages qui comptent : listes d'exercices par track, exercices individuels, listes de solutions de la communauté et solutions publiées individuelles. La Crawling API rend chaque page dans un vrai navigateur, l'atteint via des IP résidentielles et vous renvoie du HTML ou du JSON propre.

tracks

Chaque track de langage

exercism-serp transforme la liste d'exercices de n'importe quel track en JSON : chaque exercice avec son slug, son type, son titre, sa difficulté, son résumé et son état de déblocage, plus le nombre d'exercices du track.

exercices

Instructions d'exercice complètes

exercism-exercise renvoie l'aperçu d'un seul exercice avec son titre, sa difficulté et les instructions complètes en texte et en HTML.

solutions

Listes de solutions de la communauté

exercism-solutions renvoie une liste paginée des solutions de la communauté pour un exercice, chacune avec son auteur, son langage, ses stars, ses commentaires, ses vues, ses itérations et un extrait.

code source

Solutions publiées complètes

Ajoutez scraper=exercism-solution pour renvoyer une solution publiée avec son code source complet, son historique d'itérations, son statut de tests et son auteur.

proxys

140M IP résidentielles

Chaque requête fait tourner une IP résidentielle sur 30 zones géographiques et franchit les contrôles de bot automatiquement. Rien à résoudre, rien à maintenir.

un token

Une API pour chaque page

La Crawling API fonctionne sur n'importe quelle URL, donc le même token couvre chaque track Exercism et tout ce que vous crawlez d'autre. Voir la démo en direct.

03 Sortie

Chaque champ de solution, en JSON propre.

Envoyez une URL de solution avec scraper=exercism-solution et la solution revient en JSON typé, code source inclus. Remplacez par exercism-serp, exercism-exercise ou exercism-solutions pour les listes, les instructions et les solutions de la communauté.

{ "url": "https://exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthrop", "track": { "slug": "ruby", "title": "Ruby" }, "exercise": { "slug": "two-fer", "type": "practice", "title": "Two Fer", "difficulty": "easy" }, "author": { "handle": "neilnorthrop" }, "language": "ruby", "numStars": 42, "numIterations": 2, "isOutOfDate": false, "publishedIterationIdx": 2, "publishedAt": "2021-03-14T09:12:07Z", "iterations": [ { "idx": 1, "testsStatus": "passed", "isPublished": false }, { "idx": 2, "testsStatus": "passed", "isPublished": true } ], "code": "def two_fer(name = \"you\")\n \"One for #{name}, one for me.\"\nend" }

Solution

url · string  track.title · string  language · string  numStars · number

Exercice

exercise.slug · string  exercise.title · string  exercise.type · string  exercise.difficulty · string

Auteur

author.handle · string  publishedAt · string  numIterations · number

Itérations

iterations[].idx · number  iterations[].testsStatus · string  iterations[].isPublished · boolean

Code

code · string  isOutOfDate · boolean  publishedIterationIdx · number

04 Comment ça marche

De l'URL aux données en un seul appel.

Chaque requête Exercism suit le même chemin. Vous envoyez une URL, nous gérons tout le reste.

01

Envoyez l'URL

Passez n'importe quelle URL publique Exercism avec votre token : une liste d'exercices de track, un exercice, une liste de solutions ou une seule solution publiée.

02

Faites tourner un proxy

Une IP et une zone résidentielles qui atteignent le site proprement, tirées de 140M IP sur 30 régions.

03

Rendez la page

Un vrai navigateur charge la page pour que exercices, solutions et code soient rendus avant la capture.

04

Franchissez l'anti-bot

Les contrôles de bot et les limites de débit du site sont gérés automatiquement. Rien à résoudre, rien à maintenir.

05

Renvoyez HTML ou JSON

Le HTML entièrement rendu revient, ou du JSON typé quand vous ajoutez exercism-serp, exercism-exercise, exercism-solutions ou exercism-solution.

05 Cas d'usage

Ce que les équipes construisent avec les données Exercism.

USE / 01Entraînement

Données d'entraînement de code et RAG

Alimentez modèles, pipelines RAG et agents de code en prompts d'exercice propres et vraies solutions publiées via une seule API.

USE / 02Benchmarks

Benchmarks de solutions

Assemblez des jeux de données de solutions structurés multi-langages, avec stars, itérations et statut de tests, pour évaluation et benchmarks.

USE / 03Curriculum

Sync de curriculum et de catalogue

Mirrorez listes d'exercices, types, difficulté et ordre de déblocage par track pour garder plateformes d'apprentissage et catalogues synchronisés.

USE / 04Recherche

Recherche sur les langages et le style

Comparez comment le même exercice est résolu selon les langages et les auteurs pour étudier idiomes, patterns et historique d'itérations.

USE / 05Contenu

Docs et pipelines de contenu

Récupérez les instructions d'exercice en texte et en HTML pour alimenter tutoriels, docs et guides d'étude.

USE / 06Couverture

N'importe quelle URL, une API

Crawlez tracks, exercices, listes de solutions et solutions individuelles, plus tout autre site dont vous avez besoin.

06 À savoir

Bon à savoir pour scraper Exercism.

Quatre scrapers, quatre types de page

exercism-serp lit une liste d'exercices de track, exercism-exercise un seul exercice, exercism-solutions une liste de solutions de la communauté, et exercism-solution une solution publiée avec son code.

HTML par défaut, JSON à la demande

Vous obtenez le HTML entièrement rendu. Ajoutez scraper=exercism-serp, exercism-exercise, exercism-solutions ou exercism-solution pour du JSON parsé, ou parsez le HTML vous-même.

Les listes de solutions sont paginées

exercism-solutions renvoie page, totalPages, totalCount et solutionCount à côté du tableau des solutions, pour que vous puissiez parcourir chaque page d'un exercice.

Atteignez le site de n'importe où

Le geotargeting sur 30 régions et 140M IP résidentielles signifie un accès constant sans gérer de proxys.

07 Pourquoi Crawlbase

Conçu pour crawler Exercism à grande échelle.

La Crawling API tourne sur le même réseau qui sert plus de 46 000 clients payants et 70 000 développeurs. Aucun proxy à acheter, aucun navigateur à faire tourner, rien à corriger quand le site change.

99%
Taux de réussite moyen des requêtes
140M
IP résidentielles, plus 98M datacenter
30
Zones géographiques pour des résultats locaux précis
20/s
Requêtes par seconde par défaut, plus sur demande

Un token, des SDK officiels pour Python, Node et Ruby, et un réseau à 99,99 % de disponibilité en dessous.

08 FAQ

Questions sur le scraping de Exercism.

Envoyez n'importe quelle URL Exercism à la Crawling API de Crawlbase avec votre token. Crawlbase fait tourner un proxy résidentiel, rend la page dans un vrai navigateur, franchit les contrôles de bot et renvoie le HTML entièrement rendu. Ajoutez un scraper dédié (scraper=exercism-serp, exercism-exercise, exercism-solutions ou exercism-solution) pour obtenir du JSON structuré à la place.
Oui. Par défaut la Crawling API renvoie du HTML rendu ; ajoutez un scraper dédié pour recevoir du JSON structuré : exercism-serp pour une liste d'exercices de track, exercism-exercise pour un seul exercice, exercism-solutions pour une liste de solutions de la communauté, et exercism-solution pour une solution publiée avec ses itérations et son code.
Listes d'exercices de track, pages d'exercice individuelles, listes de solutions de la communauté et solutions publiées individuelles, sur chaque track de langage d'exercism.org. La même API fonctionne aussi sur tout autre site.
Crawlbase route chaque requête via des IP résidentielles rotatives sur 30 zones géographiques et franchit les contrôles de bot automatiquement, donc l'accès reste constant et il n'y a rien à maintenir quand le site change sa configuration.
exercism-serp renvoie une liste d'exercices de track, chaque entrée avec son slug, son type, son titre, sa difficulté, son résumé et son état de déblocage. exercism-exercise renvoie l'aperçu d'un seul exercice et ses instructions complètes. exercism-solutions renvoie une liste paginée de solutions de la communauté avec auteur, langage, stars, commentaires, vues et nombre d'itérations. exercism-solution renvoie une solution publiée avec son code source complet, son historique d'itérations et son auteur.
Oui. Le scraper exercism-solution renvoie le code source complet d'une solution publiée à côté de son historique d'itérations, son statut de tests, son nombre de stars et le handle de son auteur.
Commencez gratuitement avec jusqu'à 20 000 requêtes et sans carte bancaire. Les offres payantes évoluent avec l'usage, et le même token fonctionne pour la Crawling API et chaque scraper Crawlbase.

Commencez à scraper Exercism.
Oubliez les proxys et les limites de débit.

Gratuit pour démarrer avec jusqu'à 20 000 requêtes. Un token pour la Crawling API et chaque scraper.