LeetCode Problem Set
Analysez une liste d'exercices LeetCode en JSON structuré avec, pour chaque exercice, son id, son titre, sa difficulté, son taux de réussite, son indicateur premium et son URL.
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' -Gfrom 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-programmingStructure de la réponse
Corps de la réponse JSON. Les types de champs peuvent être null lorsque la page source omet la valeur.
problems pour cette page.Easy, Medium ou Hard.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
}
]
}