crawlbaseDocs
Anmelden

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' -G
from 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/exercises

Response-Struktur

JSON-Response-Body. Feldtypen können null sein, wenn die Quellseite den Wert nicht enthält.

trackUrl
string
URL der gescrapten Track-Übungslistenseite.
track
string | null
Track-Slug aus dem URL-Pfad (zum Beispiel ruby), oder null, wenn er nicht bestimmt werden kann.
exerciseCount
integer
Anzahl der in exercises zurückgegebenen Übungen.
exercises
array
Übungen des Tracks, in Listenreihenfolge.
exercises[].slug
string
Übungs-Slug (URL-Fragment, zum Beispiel two-fer).
exercises[].type
string
Übungstyp (zum Beispiel practice oder tutorial).
exercises[].title
string
Anzeigetitel der Übung.
exercises[].iconUrl
string
URL des Übungssymbols.
exercises[].difficulty
string
Schwierigkeitsbezeichnung (zum Beispiel easy, medium, hard).
exercises[].blurb
string
Kurze einzeilige Beschreibung der Übung.
exercises[].isExternal
boolean
True, wenn die Übung außerhalb des Tracks gehostet wird.
exercises[].isUnlocked
boolean
True, wenn die Übung für den Betrachter freigeschaltet ist.
exercises[].isRecommended
boolean
True, wenn Exercism die Übung als nächste empfiehlt.
exercises[].url
string | null
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"
    }
  ]
}