crawlbaseDocs
Se connecter
Le défi du jour est renvoyé comme une ligne supplémentaire

LeetCode épingle le défi du jour au-dessus du tableau paginé : une page complète renvoie donc une entrée de plus que la taille de page - l'exercice épinglé en premier, puis les lignes du tableau. C'est la seule entrée dont isDailyQuestion vaut true, ce qui la rend simple à écarter si vous ne voulez que le tableau.

Utilisation de l'API

Ajoutez &scraper=leetcode-serp à 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://leetcode.com/problemset/' \
  --data-urlencode 'scraper=leetcode-serp' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://leetcode.com/problemset/',
    {'scraper': 'leetcode-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://leetcode.com/problemset/',
  { scraper: 'leetcode-serp' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://leetcode.com/problemset/', scraper: 'leetcode-serp')
data = JSON.parse(res.body)

Exemple d'URL en entrée

Toute liste d'exercices LeetCode fonctionne dans le paramètre url - la liste non filtrée sur /problemset/ ou une vue filtrée. Par exemple :

https://leetcode.com/problemset/
https://leetcode.com/problemset/?difficulty=EASY
https://leetcode.com/problemset/?topicSlugs=dynamic-programming

Structure 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
string
URL de la liste d'exercices analysée.
totalProblems
integer | null
Nombre total d'exercices que LeetCode indique pour le filtre courant, toutes pages confondues.
problemCount
integer
Nombre d'entrées renvoyées dans problems pour cette page.
problems
array
Lignes d'exercices trouvées sur la page, dans leur ordre d'affichage.
problems[].id
string | null
Numéro de l'exercice tel qu'affiché dans la liste, renvoyé sous forme de chaîne.
problems[].title
string | null
Titre affiché de l'exercice.
problems[].titleSlug
string | null
Slug d'URL de l'exercice, utilisable pour construire n'importe quelle autre URL d'exercice LeetCode.
problems[].url
string | null
URL absolue de la page de l'exercice.
problems[].difficulty
string | null
Libellé de difficulté - Easy, Medium ou Hard.
problems[].acceptanceRate
string | null
Taux de réussite tel affiché, signe pourcentage inclus.
problems[].isPremium
boolean
Indique si l'exercice nécessite un abonnement LeetCode.
problems[].isDailyQuestion
boolean
Indique si cette ligne est le défi du jour épinglé.

Exemple de réponse

{
  "url": "https://leetcode.com/problemset/",
  "totalProblems": 4013,
  "problemCount": 101,
  "problems": [
    {
      "id": "3626",
      "title": "Smallest Divisible Digit Product I",
      "titleSlug": "smallest-divisible-digit-product-i",
      "url": "https://leetcode.com/problems/smallest-divisible-digit-product-i",
      "difficulty": "Easy",
      "acceptanceRate": "71.0%",
      "isPremium": false,
      "isDailyQuestion": true
    },
    {
      "id": "1",
      "title": "Two Sum",
      "titleSlug": "two-sum",
      "url": "https://leetcode.com/problems/two-sum",
      "difficulty": "Easy",
      "acceptanceRate": "57.9%",
      "isPremium": false,
      "isDailyQuestion": false
    },
    {
      "id": "2",
      "title": "Add Two Numbers",
      "titleSlug": "add-two-numbers",
      "url": "https://leetcode.com/problems/add-two-numbers",
      "difficulty": "Medium",
      "acceptanceRate": "49.1%",
      "isPremium": false,
      "isDailyQuestion": false
    }
  ]
}