crawlbaseDocs
Anmelden
Die tägliche Challenge wird als zusätzliche Zeile zurückgegeben

LeetCode heftet die tägliche Challenge über die paginierte Tabelle, daher liefert eine volle Seite einen Eintrag mehr als die Seitengröße - zuerst die angeheftete Aufgabe, dann die Tabellenzeilen. Sie ist der einzige Eintrag mit isDailyQuestion auf true, lässt sich also einfach entfernen, wenn Sie nur die Tabelle möchten.

API-Nutzung

Fügen Sie &scraper=leetcode-serp zu einem Crawling-API-Request hinzu. Kodieren Sie die Ziel-URL im Parameter url URL-encoded.

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)

Beispiel-Eingabe-URL

Im Parameter url funktioniert jede LeetCode-Aufgabenliste - die ungefilterte Liste unter /problemset/ oder eine gefilterte Ansicht. Zum Beispiel:

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

Response-Struktur

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

url
string
URL der gescrapten Aufgabenliste.
totalProblems
integer | null
Gesamtzahl der Aufgaben, die LeetCode für den aktuellen Filter über alle Seiten hinweg meldet.
problemCount
integer
Anzahl der Einträge, die für diese Seite in problems zurückgegeben werden.
problems
array
Auf der Seite gefundene Aufgabenzeilen, in der aufgeführten Reihenfolge.
problems[].id
string | null
Aufgabennummer wie in der Liste angezeigt, als String zurückgegeben.
problems[].title
string | null
Angezeigter Aufgabentitel.
problems[].titleSlug
string | null
URL-Slug der Aufgabe, mit dem sich jede andere LeetCode-Aufgaben-URL bauen lässt.
problems[].url
string | null
Absolute URL der Aufgabenseite.
problems[].difficulty
string | null
Schwierigkeitsangabe - Easy, Medium oder Hard.
problems[].acceptanceRate
string | null
Erfolgsquote wie angezeigt, inklusive Prozentzeichen.
problems[].isPremium
boolean
Ob die Aufgabe ein LeetCode-Abonnement voraussetzt.
problems[].isDailyQuestion
boolean
Ob diese Zeile die angeheftete tägliche Challenge ist.

Beispiel-Response

{
  "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
    }
  ]
}