Exercice Exercism
Analysez une page de présentation d'un exercice Exercism unique en JSON structuré avec son titre, sa difficulté et l'ensemble des instructions en texte et en HTML.
Utilisation de l'API
Ajoutez &scraper=exercism-exercise à une requête Crawling API. Encodez en URL l'URL cible dans le paramètre url.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://exercism.org/tracks/ruby/exercises/two-fer' \
--data-urlencode 'scraper=exercism-exercise' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://exercism.org/tracks/ruby/exercises/two-fer',
{'scraper': 'exercism-exercise'}
)
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',
{ scraper: 'exercism-exercise' }
);
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', scraper: 'exercism-exercise')
data = JSON.parse(res.body)Exemple d'URL en entrée
N'importe quelle page de présentation d'un exercice Exercism fonctionne dans le paramètre url - la page située à /tracks/<track>/exercises/<slug>. Par exemple :
https://exercism.org/tracks/ruby/exercises/two-fer
https://exercism.org/tracks/python/exercises/leap
https://exercism.org/tracks/go/exercises/hello-world
https://exercism.org/tracks/rust/exercises/grainsStructure de la réponse
Corps de la réponse JSON. Les types de champs peuvent être null lorsque la page source omet la valeur.
URL de la page de l'exercice qui a été scrapée.
Slug de la piste lu depuis le chemin de l'URL (par exemple
ruby), ou null lorsqu'il ne peut pas être déterminé.Slug de l'exercice lu depuis le chemin de l'URL (par exemple
two-fer), ou null lorsqu'il ne peut pas être déterminé.Titre affiché de l'exercice.
Libellé de difficulté (par exemple
easy, medium, hard).Instructions complètes de l'exercice en texte brut, avec les espaces réduits.
Instructions complètes de l'exercice en HTML, préservant les titres, les blocs de code et les listes.
Exemple de réponse
{
"url": "https://exercism.org/tracks/ruby/exercises/two-fer",
"track": "ruby",
"slug": "two-fer",
"title": "Two Fer",
"difficulty": "easy",
"instructions": "Two Fer Two-fer is short for two for one. One for you and one for me. Given a name, return a string with the message: One for name, one for me. Where \"name\" is the given name. However, if the name is missing, return the string: One for you, one for me.",
"instructionsHtml": "Instructions
\nTwo-fer is short for two for one. One for you and one for me.
\nGiven a name, return a string with the message:
\nOne for name, one for me.
"
}