Exercism Solutions
Parsen Sie eine Exercism-Übungs-Community-Lösungsseite in strukturiertes JSON mit Autor, Sprache, Sternen, Iterationszahlen und Paginierung jeder veröffentlichten Lösung.
API-Nutzung
Fügen Sie &scraper=exercism-solutions zu einem Crawling API-Request hinzu. URL-kodieren Sie die Ziel-URL im url-Parameter. Die Liste ist paginiert (24 pro Seite); übergeben Sie eine ?page=N-Query an der Ziel-URL für weitere Seiten.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://exercism.org/tracks/ruby/exercises/two-fer/solutions' \
--data-urlencode 'scraper=exercism-solutions' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://exercism.org/tracks/ruby/exercises/two-fer/solutions',
{'scraper': 'exercism-solutions'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://exercism.org/tracks/ruby/exercises/two-fer/solutions',
{ scraper: 'exercism-solutions' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://exercism.org/tracks/ruby/exercises/two-fer/solutions', scraper: 'exercism-solutions')
data = JSON.parse(res.body)Beispiel-Eingabe-URL
Im url-Parameter funktioniert jede Exercism-Übungs-Community-Lösungsseite - die Seite unter /tracks/<track>/exercises/<slug>/solutions, optional mit einer ?page=N-Query. Zum Beispiel:
https://exercism.org/tracks/ruby/exercises/two-fer/solutions
https://exercism.org/tracks/go/exercises/hello-world/solutions
https://exercism.org/tracks/python/exercises/leap/solutions?page=2Response-Struktur
JSON-Response-Body. Feldtypen können null sein, wenn die Quellseite den Wert nicht enthält.
URL der gescrapten Lösungslistenseite.
Track-Kontext, übernommen aus der ersten Lösungszeile.
Anzeigetitel des Tracks (zum Beispiel
Ruby).URL des Track-Symbols.
Übungskontext, übernommen aus der ersten Lösungszeile.
Anzeigetitel der Übung.
URL des Übungssymbols.
Seitennummer der aktuell zurückgegebenen Liste (1-basiert).
Gesamtzahl der Lösungsseiten für die Übung.
Gesamtzahl der veröffentlichten Lösungen für die Übung.
Anzahl der auf dieser Seite in
solutions zurückgegebenen Lösungen.Veröffentlichte Lösungen auf dieser Seite, in Listenreihenfolge.
Exercism-Lösungs-UUID.
Autor der Lösung.
Autoren-Handle (Exercism-Benutzername).
URL des Autoren-Avatars.
Flair-Abzeichen des Autors (zum Beispiel
insider), oder null, wenn keines vorhanden ist.Programmiersprache der Lösung.
Anzahl der Sterne der Lösung.
Anzahl der Kommentare zur Lösung.
Anzahl der Aufrufe der Lösung.
Anzahl der vom Autor eingereichten Iterationen.
Codezeilen in der Lösung, oder null, wenn nicht angegeben.
True, wenn die Lösung gegenüber der aktuellen Übung veraltet ist.
Veröffentlichungszeit der Lösung (ISO 8601), oder null, wenn nicht vorhanden.
Kurze Code-Snippet-Vorschau der Lösung, oder null, wenn nicht vorhanden.
Öffentliche URL der Einzellösungsseite, oder null, wenn nicht vorhanden.
Beispiel-Response
{
"url": "https://exercism.org/tracks/ruby/exercises/two-fer/solutions",
"track": {
"title": "Ruby",
"iconUrl": "https://assets.exercism.org/tracks/ruby.svg"
},
"exercise": {
"title": "Two Fer",
"iconUrl": "https://assets.exercism.org/exercises/two-fer.svg"
},
"page": 1,
"totalPages": 412,
"totalCount": 9876,
"solutionCount": 2,
"solutions": [
{
"uuid": "b3f2c1a0-9d8e-4f7a-8c6b-1a2b3c4d5e6f",
"author": {
"handle": "neilnorthrop",
"avatarUrl": "https://avatars.exercism.org/u/12345",
"flair": "insider"
},
"language": "ruby",
"numStars": 42,
"numComments": 3,
"numViews": 1280,
"numIterations": 2,
"numLoc": 3,
"isOutOfDate": false,
"publishedAt": "2026-05-18T14:03:27Z",
"snippet": "def two_fer(name = \"you\")\n \"One for #{name}, one for me.\"\nend",
"url": "https://exercism.org/tracks/ruby/exercises/two-fer/solutions/neilnorthrop"
},
{
"uuid": "c4e3d2b1-0a9f-4e8b-9d7c-2b3c4d5e6f70",
"author": {
"handle": "erikschierboom",
"avatarUrl": "https://avatars.exercism.org/u/67890",
"flair": null
},
"language": "ruby",
"numStars": 17,
"numComments": 0,
"numViews": 640,
"numIterations": 1,
"numLoc": 4,
"isOutOfDate": false,
"publishedAt": "2026-04-02T09:11:50Z",
"snippet": "def two_fer(name = \"you\")\n format(\"One for %s, one for me.\", name)\nend",
"url": "https://exercism.org/tracks/ruby/exercises/two-fer/solutions/erikschierboom"
}
]
}