Exercism Exercises
Parsen Sie eine Exercism-Track-Übungslistenseite in strukturiertes JSON mit Slug, Titel, Schwierigkeit, Kurzbeschreibung und Freischaltstatus jeder Übung.
API-Nutzung
Fügen Sie &scraper=exercism-serp zu einem Crawling API-Request hinzu. URL-kodieren Sie die Ziel-URL im url-Parameter.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://exercism.org/tracks/ruby/exercises' \
--data-urlencode 'scraper=exercism-serp' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://exercism.org/tracks/ruby/exercises',
{'scraper': 'exercism-serp'}
)
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',
{ scraper: 'exercism-serp' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://exercism.org/tracks/ruby/exercises', scraper: 'exercism-serp')
data = JSON.parse(res.body)Beispiel-Eingabe-URL
Im url-Parameter funktioniert jede Exercism-Track-Übungslistenseite - die Seite unter /tracks/<track>/exercises für jeden beliebigen Sprach-Track. Zum Beispiel:
https://exercism.org/tracks/ruby/exercises
https://exercism.org/tracks/python/exercises
https://exercism.org/tracks/go/exercises
https://exercism.org/tracks/javascript/exercises
https://exercism.org/tracks/rust/exercisesResponse-Struktur
JSON-Response-Body. Feldtypen können null sein, wenn die Quellseite den Wert nicht enthält.
URL der gescrapten Track-Übungslistenseite.
Track-Slug aus dem URL-Pfad (zum Beispiel
ruby), oder null, wenn er nicht bestimmt werden kann.Anzahl der in
exercises zurückgegebenen Übungen.Übungen des Tracks, in Listenreihenfolge.
Übungs-Slug (URL-Fragment, zum Beispiel
two-fer).Übungstyp (zum Beispiel
practice oder tutorial).Anzeigetitel der Übung.
URL des Übungssymbols.
Schwierigkeitsbezeichnung (zum Beispiel
easy, medium, hard).Kurze einzeilige Beschreibung der Übung.
True, wenn die Übung außerhalb des Tracks gehostet wird.
True, wenn die Übung für den Betrachter freigeschaltet ist.
True, wenn Exercism die Übung als nächste empfiehlt.
Kanonische URL der Übungsübersichtsseite, oder null, wenn nicht vorhanden.
Beispiel-Response
{
"trackUrl": "https://exercism.org/tracks/ruby/exercises",
"track": "ruby",
"exerciseCount": 3,
"exercises": [
{
"slug": "two-fer",
"type": "practice",
"title": "Two Fer",
"iconUrl": "https://assets.exercism.org/exercises/two-fer.svg",
"difficulty": "easy",
"blurb": "Create a sentence of the form \"One for X, one for me.\"",
"isExternal": false,
"isUnlocked": true,
"isRecommended": false,
"url": "https://exercism.org/tracks/ruby/exercises/two-fer"
},
{
"slug": "hello-world",
"type": "practice",
"title": "Hello World",
"iconUrl": "https://assets.exercism.org/exercises/hello-world.svg",
"difficulty": "easy",
"blurb": "The classical introductory exercise. Just say \"Hello, World!\"",
"isExternal": false,
"isUnlocked": true,
"isRecommended": true,
"url": "https://exercism.org/tracks/ruby/exercises/hello-world"
},
{
"slug": "grains",
"type": "practice",
"title": "Grains",
"iconUrl": "https://assets.exercism.org/exercises/grains.svg",
"difficulty": "medium",
"blurb": "Calculate the number of grains of wheat on a chessboard.",
"isExternal": false,
"isUnlocked": true,
"isRecommended": false,
"url": "https://exercism.org/tracks/ruby/exercises/grains"
}
]
}