Dzen.ru Scraper - Articles, Videos, Channels & Comments avatar

Dzen.ru Scraper - Articles, Videos, Channels & Comments

Pricing

from $1.80 / 1,000 content records

Go to Apify Store
Dzen.ru Scraper - Articles, Videos, Channels & Comments

Dzen.ru Scraper - Articles, Videos, Channels & Comments

Scrape Dzen.ru (ex Yandex.Zen): articles, videos and channels. Full article text with likes and comment counts, channel subscriber counts with their on-page publications, video metadata. Paste any Dzen link; incremental mode reports only new and changed content.

Pricing

from $1.80 / 1,000 content records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Dzen.ru Scraper: Articles, Videos & Channels

Dzen.ru Scraper turns Dzen (ex Yandex.Zen), Russia's largest content platform, into a clean JSON API. Walk the discovery feed page by page, or paste any Dzen link - an article, a video, or a channel - and get full metadata: article text with like and comment counts, channel subscriber counts with all their articles, video views and dates. Export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two lanes in one actor. Feed mode walks Dzen's discovery feed page by page; URL mode deep-dives pasted article, video and channel links.
  • Channel monitoring. Paste channel links and get the channel record (subscriber count included) plus its articles, newest first, as far back as Max records allows - incremental mode reports only the new ones on scheduled runs.
  • Full article records. Title, description, body text, images, author channel, like and comment counts.
  • Comments included. Turn on Include comments to get each article's and video's comments (text, author, date, likes, dislikes, emoji reactions and reply count) inside its record, plus a separate Comments output with one row per comment. Sort by popularity, newest or oldest.
  • Built for schedules. Incremental mode returns only new and changed content on recurring runs, and a refused run fails loudly instead of returning an empty dataset.
  • Reliable RU connection. Runs over a residential RU connection by default, the setup Dzen was tested on.

Use Cases

  • Media analytics: track subscriber counts, like counts and comment counts across Dzen channels on a schedule.
  • Content monitoring: walk the discovery feed daily and get only the new publications.
  • Journalism and research: pull full article text and metadata for RU-media datasets.
  • Competitive tracking: monitor specific channels' publication cadence and engagement.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id"article:arjYU4pA7HGwblbw" (prefixed with the entity type)
dzenType"article" (also "video", "channel", "native" for feed rows)
title"Article headline"
urlhttps://dzen.ru/a/... canonical link
publicationDate"2026-09-29" or an ISO timestamp
textPreview"Short description from the page"
textContentfull article body text (pasted article links, or channel articles with Full article text on); channel articles otherwise carry the lead paragraph in textPreview
images["https://avatars.dzeninfra.ru/..."]
authorName / authorUrlchannel name and link
subscribers869053 (channels)
likes / commentsCount124 / 44 where the page exposes them
views15234 (feed rows and videos)
isPremiumfalse
timeToReadSeconds42 (feed rows)
collectionContext"Channel Name" (publications walked from a channel)
comments[{"commentText": "...", "commentAuthor": "...", "commentDate": "2026-09-29T14:42:40Z", "commentLikes": 3, "commentReplies": 1, ...}] (with Include comments on)
detailFetchedtrue when the record's own page was read
changeType / changedFields / firstSeenAt / lastSeenAtincremental mode only

How to Use

  1. Pick a mode: feed (walk the discovery feed), url (paste links) or search (search by keyword).
  2. In feed mode set Max feed pages; in URL mode paste article, video or channel links (for channels, choose the order and whether you want articles, videos or shorts); in search mode enter queries and a result type.
  3. Set Max records to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search Dzen for videos:

{
"mode": "search",
"searchQueries": ["грибы", "рецепты выпечки"],
"searchType": "videos",
"maxItems": 50
}

A channel's most popular videos:

{
"mode": "url",
"urls": [{ "url": "https://dzen.ru/tass" }],
"channelSort": "popular",
"channelContent": "videos",
"maxItems": 30
}

Walk the discovery feed:

{
"mode": "feed",
"maxPages": 5,
"maxItems": 100
}

Deep-read specific articles:

{
"mode": "url",
"urls": [
"https://dzen.ru/a/arjYU4pA7HGwblbw",
"https://dzen.ru/a/arnnyamrzEdmCVFV"
]
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/dzen-ru-scraper").call(run_input={
"mode": "feed",
"maxItems": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["dzenType"], item["title"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/dzen-ru-scraper').call({
mode: 'url',
urls: ['https://dzen.ru/tass'],
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips everything already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for scheduled runs over the same links. Each record is classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED or EXPIRED (only after a run that scanned every link, and only with emitExpired). stateKey names or shares the stored state. With incremental mode off, output is exactly as before.
  • What counts as a change. views never makes a record UPDATED, because view counts rise on almost every run; the field is still returned. Likes, comment counts and subscriber counts do count, so a record is returned (and billed) again when they move. That is how a like-count jump or subscriber growth is spotted. To hear only about new content, add those fields to ignoreFieldsForChanges. Links in the output are always clean canonical dzen.ru URLs, so they never cause a false change.

Input Parameters

ParameterTypeDefaultDescription
modestringfeedfeed (walk the discovery feed), url (paste links) or search (search by keyword).
searchQueriesarray(none)Search mode: keywords or phrases, one per row.
searchTypestringallSearch mode: all, articles, videos or channels.
channelSortstringnewestChannel links: newest, popular or oldest first.
channelContentstringarticlesChannel links: the channel's articles, videos or shorts.
fetchArticleTextbooleanfalseChannel links: read each article in full (complete text and images), charged as a full page read. Off returns the listing data (title, lead paragraph, counts, date, cover).
urlsarraysampleDzen links (url mode): articles, videos, channels. Mixed sets are fine.
maxItemsinteger20Stop after this many records (0 = no limit).
maxPagesinteger0Max result pages per feed or search query (0 = no limit).
includeCommentsbooleanfalseAlso collect each article's and video's comments (nested in the record, and one row per comment in the Comments output).
maxCommentsPerPostinteger20Max comments per post. Does not count toward maxItems.
commentsSortstringtoptop (most popular, at most 20 per post), newest or oldest.
resumeFromRunIdstring(none)Continue one interrupted run.
incrementalModebooleanfalseReturn only new and changed records on scheduled runs.
stateKeystring(none)Name or share an incremental-mode state.
emitUnchangedbooleanfalseAlso return (and bill) unchanged records.
emitExpiredbooleanfalseAlso return (and bill) expired records.
ignoreFieldsForChangesarray(none)Extra output fields that should not make a record UPDATED (views is always ignored).
proxyobjectresidential RUConnection settings.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which records are created.
maxNotifyListingsinteger50Cap on records written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": "article:arjYU4pA7HGwblbw",
"dzenType": "article",
"title": "Article headline",
"url": "https://dzen.ru/a/arjYU4pA7HGwblbw",
"publicationDate": "2026-09-29T10:00:00Z",
"textPreview": "Short description from the page",
"textContent": "Full article body text...",
"images": ["https://avatars.dzeninfra.ru/get-zen-pub/..."],
"authorName": "Channel Name",
"subscribers": null,
"likes": 124,
"commentsCount": 44,
"comments": [],
"views": null,
"collectionContext": null,
"detailFetched": true,
"changeType": null,
"changedFields": [],
"firstSeenAt": null,
"lastSeenAt": null
}

Plan Requirement

The default connection uses a residential RU proxy; a residential plan gives the most reliable results. Expect 15-30 seconds before the first records while the connection is set up.

FAQ

How much does it cost?

You pay per record returned: articles, videos and channels are charged as content records, and each collected comment (only with Include comments on) is charged as a comment, at a lower rate. Records whose full page is read, which means every pasted article or video link and channel articles with Full article text on, are also charged a full page read. Channel articles without it, channel videos and shorts, search results and feed rows never are. The Pricing tab shows the current rates. Use Max records and Max comments per post to cap the cost of any run; a run also stops cleanly at the spending limit you set.

How do comments work?

Comments sit inside their article or video record, in the comments list, so each post stays one record. The Comments output (next to the default output on the run page, or ?view=comments through the API) shows one row per comment next to the post's title and link, ready for CSV or Excel. Only top-level comments are returned; commentReplies tells you how many replies each has. With Most popular first, Dzen shows at most 20 comments per post; choose Newest first or Oldest first to get more. In incremental mode a post's comments are returned (and charged) again only when the post itself is NEW, UPDATED or REAPPEARED. A new comment changes commentsCount, which counts as a change.

This actor collects only publicly available content metadata and article text. You are responsible for how you use the data: follow Dzen's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Article text and media can be subject to third-party rights.

What is the difference between feed, URL and search mode?

Feed mode walks Dzen's discovery feed and returns a broad, paginated stream of publications. URL mode deep-dives specific links: full article text, channel subscriber counts and their articles, videos or shorts in newest, most popular or oldest order, and video metadata. Search mode returns Dzen's search results for your queries, optionally only articles, only videos or only channels. Channels found by search carry a rounded subscriber count (for example 15.3K); paste the channel link in URL mode for the exact figure.

Can I monitor a channel for new publications?

Yes. Paste the channel link, turn on Incremental mode, and schedule the run. Each run then returns only new and updated records, and unchanged ones are not billed.

Why did my run fail instead of returning an empty dataset?

If Dzen refuses every request, the run stops with a clear message so "no results" is never confused with "nothing could be read". Run it again in a few minutes.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Send results into your apps (MCP connectors)

Optionally pipe results into Notion, Linear, Airtable or Apify through Model Context Protocol connectors. Authorize a connector under Apify, Settings, API & Integrations, then select it in mcpConnectors. The dataset output is never changed by this.