Пост Reddit
Разбирайте один пост Reddit в структурированный JSON с телом поста, счётом, долей плюсов, количеством комментариев и полным вложенным деревом комментариев с автором, счётом и текстом каждого комментария.
Использование API
Добавьте &scraper=reddit-post к запросу Crawling API. URL-кодируйте целевой URL в параметре url.
curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
--data-urlencode 'url=https://www.reddit.com/r/programming/comments/1c8a1bb/' \
--data-urlencode 'scraper=reddit-post' -Gfrom crawlbase import CrawlingAPI
api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
'https://www.reddit.com/r/programming/comments/1c8a1bb/',
{'scraper': 'reddit-post'}
)
import json
data = json.loads(res['body'])const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });
const res = await api.get(
'https://www.reddit.com/r/programming/comments/1c8a1bb/',
{ scraper: 'reddit-post' }
);
const data = JSON.parse(res.body);require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')
res = api.get('https://www.reddit.com/r/programming/comments/1c8a1bb/', scraper: 'reddit-post')
data = JSON.parse(res.body)Пример входного URL
URL, передаваемый в параметре url (URL-декодированный для удобства чтения):
https://www.reddit.com/r/programming/comments/1c8a1bb/Структура ответа
Тело ответа в формате JSON. Типы полей могут быть null, если исходная страница не содержит значения.
Сам пост.
Полное имя (fullname) поста в Reddit (например,
t3_...).Заголовок поста.
Имя пользователя автора поста.
Сабреддит, которому принадлежит пост (без префикса
r/).Счёт поста (плюсы минус минусы).
Доля голосов, являющихся плюсами (от 0 до 1).
Общее количество комментариев к посту.
Время создания поста (ISO 8601).
Внешняя ссылка, на которую указывает пост (null для текстовых постов).
Домен внешней ссылки.
Permalink на пост в Reddit.
Текст flair поста, если задан.
True, если пост отмечен как NSFW.
Текст тела текстового (self) поста; пусто для постов-ссылок.
Количество комментариев верхнего уровня, возвращённых в
comments.Комментарии верхнего уровня, каждый с вложенным деревом
replies.Полное имя (fullname) комментария в Reddit (например,
t1_...).Имя пользователя автора комментария.
Счёт комментария (плюсы минус минусы).
Время создания комментария (ISO 8601).
Текст комментария.
Permalink на комментарий в Reddit.
True, если автор комментария является автором поста (OP).
Вложенные ответы, каждый той же формы, что и комментарий.
Пример ответа
{
"post": {
"id": "t3_1c8a1bb",
"title": "The hidden cost of deep dependency trees",
"author": "buildmaster",
"subreddit": "programming",
"score": 2417,
"upvoteRatio": 0.96,
"commentsCount": 312,
"createdAt": "2026-07-14T09:12:44+00:00",
"url": "https://example.com/blog/dependency-trees",
"domain": "example.com",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/",
"flair": null,
"isNsfw": false,
"selfText": ""
},
"commentCount": 3,
"comments": [
{
"id": "t1_l0aa111",
"author": "perftuner",
"score": 184,
"createdAt": "2026-07-14T09:31:07+00:00",
"body": "This matches what we saw. Flattening the tree cut our cold install time in half.",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/l0aa111/",
"isSubmitter": false,
"replies": [
{
"id": "t1_l0aa222",
"author": "buildmaster",
"score": 71,
"createdAt": "2026-07-14T09:44:52+00:00",
"body": "Yep. The transitive fan-out is where most of the time goes.",
"permalink": "https://old.reddit.com/r/programming/comments/1c8a1bb/the_hidden_cost_of_deep_dependency_trees/l0aa222/",
"isSubmitter": true,
"replies": []
}
]
}
]
}