LeetCode Problem
将单个 LeetCode 题目页面解析为结构化 JSON,包含题目描述、难度、主题标签、提示、初始代码模板和互动数据。
isPremium 为 true 的题目会保留其标识字段 - id、标题、难度、主题标签 - 但题目描述和互动计数并不在页面中,因此 description、descriptionHtml 及各项计数会返回空值。
API 用法
在 Crawling API 请求中加上 &scraper=leetcode-problem。目标 URL 需经过 URL 编码后放入 url 参数。
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://leetcode.com/problems/two-sum/' \
--data-urlencode 'scraper=leetcode-problem' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://leetcode.com/problems/two-sum/',
{'scraper': 'leetcode-problem'}
)
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/problems/two-sum/',
{ scraper: 'leetcode-problem' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://leetcode.com/problems/two-sum/', scraper: 'leetcode-problem')
data = JSON.parse(res.body)示例输入 URL
url 参数支持任意 LeetCode 题目页面 - 即 /problems/<slug> 的页面。例如:
https://leetcode.com/problems/two-sum/
https://leetcode.com/problems/add-two-numbers/
https://leetcode.com/problems/longest-substring-without-repeating-characters/响应结构
JSON 响应体。当源页面省略对应值时,字段类型可能为 null。
id 相同,但在较早的题目上两者会不一致。Easy、Medium 或 Hard。Algorithms 或 Database。Python3。python3。示例响应
{
"url": "https://leetcode.com/problems/two-sum/",
"id": "1",
"internalId": "1",
"title": "Two Sum",
"titleSlug": "two-sum",
"difficulty": "Easy",
"category": "Algorithms",
"isPremium": false,
"descriptionHtml": "You are given an array of integers nums and an integer target, return indices of t...",
"description": "You are given an array of integers nums and an integer target, return indices of the two numbers such that they add up t...",
"likes": 69478,
"dislikes": 2592,
"acceptedCount": 22929319,
"submissionCount": 39569455,
"acceptanceRate": "57.9%",
"commentCount": 3490,
"topicTags": [
{
"name": "Array",
"slug": "array"
},
{
"name": "Hash Table",
"slug": "hash-table"
}
],
"hints": [
"A really brute force way would be to search for all possible pairs of numbers but that would be too slow. Again, it's best to try out brute force solutions just for completeness. It is from these brute force solutions that you can come up with optimizations."
],
"exampleTestcases": [
"[2,7,11,15]\n9",
"[3,2,4]\n6",
"[3,3]\n6"
],
"codeSnippets": [
{
"language": "Python3",
"languageSlug": "python3",
"code": "class Solution:\n def twoSum(self, nums: List[int], target: int) -> List[int]:\n "
},
{
"language": "JavaScript",
"languageSlug": "javascript",
"code": "/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number[]}\n */\nvar twoSum = function(nums, target) {\n \n};"
}
],
"similarQuestions": [
{
"title": "3Sum",
"titleSlug": "3sum",
"url": "https://leetcode.com/problems/3sum/",
"difficulty": "Medium",
"isPremium": false
},
{
"title": "4Sum",
"titleSlug": "4sum",
"url": "https://leetcode.com/problems/4sum/",
"difficulty": "Medium",
"isPremium": false
}
],
"officialSolution": {
"available": true,
"isFree": true,
"hasVideo": true
},
"solutionsUrl": "https://leetcode.com/problems/two-sum/solutions/"
}