LeetCode Solutions
Разбирайте вкладку решений сообщества задачи LeetCode в структурированный JSON с названием, автором, тегами и счётчиками вовлечённости каждой публикации.
Счётчики свыше тысячи округляются
LeetCode сокращает счётчики оценок, просмотров и комментариев, как только они превышают тысячу - 11.9K, 2.3M. Они разворачиваются обратно в целые числа, поэтому значение вроде 11900 несёт ту точность, которую показала страница, а не точную величину.
Использование API
Добавьте &scraper=leetcode-solutions к запросу Crawling API. Целевой URL передавайте в параметре url в URL-кодировке.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://leetcode.com/problems/two-sum/solutions/' \
--data-urlencode 'scraper=leetcode-solutions' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://leetcode.com/problems/two-sum/solutions/',
{'scraper': 'leetcode-solutions'}
)
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/',
{ scraper: 'leetcode-solutions' }
);
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/', scraper: 'leetcode-solutions')
data = JSON.parse(res.body)Пример входного URL
В параметре url работает вкладка решений любой задачи LeetCode - страница по адресу /problems/<slug>/solutions/. Например:
https://leetcode.com/problems/two-sum/solutions/
https://leetcode.com/problems/add-two-numbers/solutions/
https://leetcode.com/problems/valid-parentheses/solutions/Структура ответа
Тело JSON-ответа. Типы полей могут быть null, если исходная страница не содержит значения.
URL обработанного списка решений.
Слаг задачи, к которой относятся решения.
Абсолютный URL страницы задачи.
Число записей, возвращённых в
solutions для этой страницы.Публикации решений, найденные на странице, в порядке их отображения.
Заголовок публикации.
Абсолютный URL публикации.
Идентификатор публикации, взятый из её URL, возвращается строкой.
Аккаунт, опубликовавший решение.
Отображаемое имя автора.
Идентификатор профиля автора.
Абсолютный URL профиля автора.
Дата публикации, как показана на карточке.
Теги на карточке - темы и языки - в виде массива строк.
Число положительных оценок публикации.
Число просмотров публикации.
Число комментариев к публикации.
Пример ответа
{
"url": "https://leetcode.com/problems/two-sum/solutions/",
"problem": "two-sum",
"problemUrl": "https://leetcode.com/problems/two-sum/",
"solutionCount": 15,
"solutions": [
{
"title": "Two Sum",
"url": "https://leetcode.com/problems/two-sum/solutions/127810/two-sum-by-leetcode-kwuq/",
"id": "127810",
"author": {
"name": "LeetCode",
"username": "leetcode",
"url": "https://leetcode.com/u/leetcode/"
},
"postedAt": "Jun 25, 2021",
"tags": [
"Editorial"
],
"upvotes": 5000,
"views": 13800000,
"comments": 2700
},
{
"title": "✅3 Method's || C++ || JAVA || PYTHON || Beginner Friendly🔥🔥🔥",
"url": "https://leetcode.com/problems/two-sum/solutions/3619262/3-methods-c-java-python-beginner-friendl-x595/",
"id": "3619262",
"author": {
"name": "Rahul Varma",
"username": "rahulvarma5297",
"url": "https://leetcode.com/u/rahulvarma5297/"
},
"postedAt": "Jun 09, 2023",
"tags": [
"Array",
"Hash Table",
"C++",
"Java"
],
"upvotes": 11900,
"views": 2300000,
"comments": 285
}
]
}