LeetCode Solution
Разбирайте отдельную публикацию решения сообщества LeetCode в структурированный JSON с автором, тегами, текстом, извлечёнными блоками кода и счётчиками вовлечённости.
Многие публикации заявляют несколько языков, но прячут альтернативы за вкладками, которые отрисовываются по одной. codeBlocks содержит блоки, присутствующие в тексте в том виде, в каком он отдан, поэтому публикация с тремя языками в заголовке может вернуться с блоками на одном.
Использование API
Добавьте &scraper=leetcode-solution к запросу Crawling API. Целевой URL передавайте в параметре url в URL-кодировке.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/' \
--data-urlencode 'scraper=leetcode-solution' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/',
{'scraper': 'leetcode-solution'}
)
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/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/',
{ scraper: 'leetcode-solution' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/', scraper: 'leetcode-solution')
data = JSON.parse(res.body)Пример входного URL
В параметре url работает любая публикация решения сообщества LeetCode - страница по адресу /problems/<slug>/solutions/<id>/<post-slug>/. Например:
https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/
https://leetcode.com/problems/two-sum/solutions/127810/two-sum-by-leetcode-kwuq/Структура ответа
Тело JSON-ответа. Типы полей могут быть null, если исходная страница не содержит значения.
cpp.Пример ответа
{
"url": "https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/",
"id": "3619262",
"problem": "two-sum",
"problemUrl": "https://leetcode.com/problems/two-sum/",
"title": "✅3 Method's || C++ || JAVA || PYTHON || Beginner Friendly🔥🔥🔥",
"author": {
"name": "Rahul Varma",
"username": "rahulvarma5297",
"url": "https://leetcode.com/u/rahulvarma5297/"
},
"postedAt": "Jun 09, 2023",
"tags": [
"Array",
"Hash Table",
"C++",
"Java"
],
"views": 2368905,
"upvotes": 12000,
"comments": 285,
"content": "Intuition\n\nThe Two Sum problem asks us to find two numbers in an array that sum up to a given target value. We need to r...",
"contentHtml": "Intuition
\n\nThe Two Sum problem asks us to find two numbers in an array that sum up to a given...",
"codeBlocks": [
{
"language": "cpp",
"code": "class Solution {\npublic:\n vector twoSum(vector& nums, int target) {\n int n = nums.size();\n..."
}
]
}