WeChat Article Metrics Scraper — 公众号文章阅读/点赞/分享/收藏数 avatar

WeChat Article Metrics Scraper — 公众号文章阅读/点赞/分享/收藏数

Pricing

$0.06 / actor start

Go to Apify Store
WeChat Article Metrics Scraper — 公众号文章阅读/点赞/分享/收藏数

WeChat Article Metrics Scraper — 公众号文章阅读/点赞/分享/收藏数

📊 WeChat Article Metrics | The read and share counts behind an article Fetch public interaction metrics for any WeChat Official Account article: read count, like count, share count, collect count, comment count and star count. Two engines — a full-metrics default and a lighter h5 mode.

Pricing

$0.06 / actor start

Rating

0.0

(0)

Developer

wang wei

wang wei

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Categories

Share

WeChat Article Metrics Scraper

✨ What you get

EN — Fetch public interaction metrics for any WeChat Official Account article. Returns read count, like count, share count, collect count, comment count, and star count. Two engines: default returns full metrics; h5 is a fast path that returns only comment_count and elected_comment_count, with an optional pre-known comment_id to skip the HTML pre-fetch.

ZH — 抓取任意公众号文章的公开互动数据:阅读数、点赞数、分享数、收藏数、评论数、星标数。两种引擎:default 返回全量指标;h5 是快速路径,只返回评论数 + 精选评论数,可通过预知 comment_id 跳过 HTML 预抓(节省约一半延迟)。


💼 Use cases

  • Reading the full interaction set for one article — engine=default returns readNum, likeCount, shareCount, collectCount, starNum and commentCount on one row.
  • Getting comment numbers fast when you already have the thread ID — engine=h5 with a known commentId skips the HTML pre-fetch and returns commentCount and electedCommentCount at roughly half the latency.
  • Telling the two like counters apart — oldLikeCount is the legacy likes figure tracked separately from the modern in-article likeCount, so you can compare an old and a new measure of the same article.
  • Benchmarking a post against the publisher's other posts — pair the row with the article listing Actor and you have reach, likes, shares and collects for every URL an account has published.

✅ Who this is for

  • Content analysts — who need per-article reach rather than follower counts, and who work from a list of URLs instead of a keyword.
  • Agencies and consultancies — building a performance view of a client's or a competitor's best-performing posts.
  • Editors — deciding which article to reuse or amplify, using shares and collects as the signal rather than reads alone.
  • Anyone optimising for speed on comment-heavy posts — the fast path with a known commentId is the cheapest way to check comment volume before pulling the thread.

❌ Who this is NOT for

  • You are reading engine=h5 output as zeros — the fields the fast path does not expose come back as null, not 0, and unavailable names them explicitly. Null means not retrieved, not no engagement.
  • You want a trend line — a run returns the current counters for one URL and nothing else. There is no history here; build a series by scheduling the Actor and storing each run's values yourself.
  • You plan to add up likeCount and oldLikeCount — they are two different counters on the same article, not two halves of one total. Summing them double-counts and misleads.
  • You read starNum as article bookmarks — star is the user favouriting the official account from that article, whereas collectCount is the article's own collect count. They measure different behaviours.
  • You want video metrics — this Actor covers WeChat Official Account articles. Interaction data for a 视频号 video sits on the Channels Actors, and each article is a separate one-URL run.

🚀 Quick start

  1. Console: paste any article URL (or use the default) and click Start.
  2. API:
    curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/runs?waitForFinish=60" \
    -H "Authorization: Bearer <APIFY_TOKEN>" \
    -H "Content-Type: application/json" \
    -d '{"url":"https://mp.weixin.qq.com/s/...", "engine":"default"}'
  3. CLI:
    apify call wechat-article-metrics-scraper \
    -i '{"url":"https://mp.weixin.qq.com/s/...", "engine":"h5", "commentId":"12345"}'

Free users: 5 runs/day. Paid users: 1 PPE event per run (article-metrics-result).


📥 Input parameters

FieldTypeDefaultNotes
urlstringhttps://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIwArticle URL. Both short (/s/<sn>) and long (/s?__biz=...&mid=...) forms accepted.
enginestring"default"default = full metrics via /fetch_article_stats. h5 = /fetch_article_stats_h5 fast path; returns only comment_count + elected_comment_count.
commentIdstring""Pre-known comment_id from /fetch_article_detail response's commentId field. Only used when engine=h5; speeds up the data provider call by skipping the HTML pre-fetch. Leave empty to let Data provider fetch the article HTML itself.
rawstring"false"false = omit raw Data provider payload; true = attach rawData for debugging.

Where to get a URL


📤 Output

engine=default

{
"url": "https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw",
"engine": "default",
"readNum": 19839,
"likeCount": 74,
"oldLikeCount": 123,
"shareCount": 693,
"collectCount": 108,
"starNum": 46,
"commentCount": 3,
"electedCommentCount": null,
"unavailable": [],
"collectedAt": "2026-09-16T12:00:00.000Z"
}

engine=h5

{
"url": "https://mp.weixin.qq.com/s/...",
"engine": "h5",
"readNum": null,
"likeCount": null,
"oldLikeCount": null,
"shareCount": null,
"collectCount": null,
"starNum": null,
"commentCount": 4,
"electedCommentCount": 2,
"unavailable": ["read_num", "like_count", "old_like_count", "share_count", "collect_count", "star_num"],
"collectedAt": "2026-09-16T12:00:00.000Z"
}

Field notes

  • For engine=h5, fields the H5 page doesn't expose come back as null (not zero). The unavailable array lists the names the data provider explicitly marked unavailable.
  • oldLikeCount is the legacy "likes" count tracked separately from the modern in-article likes.
  • starNum is "star" (星标) — users who favorited the official account from this article.
  • electedCommentCount is the count of comments hand-picked by the publisher (精选评论).

💰 Billing

1 PPE event per Actor run (article-metrics-result). Engine choice doesn't affect pricing — both call the data provider once.


📚 Resources

$npm test

Runs unit assertions (input validation, body shape, normalize across default / h5 / raw=true / raw=false, null handling) plus 9 integration scenarios (mock fetch drives the full run() flow including default/h5 engines, commentId forwarding, free-tier gating, Data provider errors).

✅ unit.js: all assertions passed.
integration.js: 9 scenarios passed.

📜 Notes & caveats

Use it together with the other WeChat Actors

Where in the pipelineActorConsole
step ① listingAccount Articles Scraper…/vxAjW6anQJQWk7xTF
step ② detailArticle Detail Scraper…/5vrr8dBcnclIva0Lx
step ③ metrics (you are here)Article Metrics Scraper…/actor
step ④ commentsArticle Comments Scraper…/comments
step ① profile (alt)Account Profile Scraper…/3JV499ECEjb5un854

You are here: Article Metrics Scraper (step ③) — pair it with a Detail Scraper output to get the body's commentId and pass it here as commentId for fast-path engine=h5.