WeChat Official Account Scraper 公众号 - Full Text, No Login avatar

WeChat Official Account Scraper 公众号 - Full Text, No Login

Pricing

from $1.20 / 1,000 articles

Go to Apify Store
WeChat Official Account Scraper 公众号 - Full Text, No Login

WeChat Official Account Scraper 公众号 - Full Text, No Login

Returns WeChat Official Account (微信公众号) articles with full text, Markdown and HTML, images, author, publish time and the account's name, gh_ id and WeChat ID. Search by keyword, read articles by link, or list an account's albums (合集) with permanent links. No WeChat login, cookies or browser.

Pricing

from $1.20 / 1,000 articles

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

3 days ago

Last modified

Share

📰 WeChat Official Account Scraper (微信公众号): Articles with Full Text, No Login

Returns articles of WeChat Official Accounts (公众号) with their full text as plain text, Markdown and HTML, title, author, publish time, cover, images with sizes, and the account's name, gh_ id, WeChat ID and description. Search articles by keyword, read articles by link, or list a whole album (合集) of an account with permanent links. It needs no WeChat account, no cookies and no browser. Export to JSON, CSV or Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

Price per 1,000 articles with full text: $4.00 on the Apify Free plan, $3.80 on Bronze, $3.50 on Silver, $3.30 from Gold up. Per 1,000 list rows without it: $1.50, $1.40, $1.30, $1.20. Not charged: a search without results, a link that leads to no article, an article its author deleted or hid, an album that does not exist.

What other WeChat Actors state as their limits, and what this one does

Their documentation or issue tab saysThis Actor
"Sogou hides the real article URL behind /link?url=, and that hop returns a captcha", so a search result is a card without link and without textFollows the redirect of every result: 97 of 97 and 95 of 95 links in two searches read to the end. A search result comes with its full text
Full text is an operation of its own at $29.99 per 1,000 articles, on top of $5.99 per 1,000 search results$4.00 per 1,000 search results with full text, $1.50 without
"Actor not working" and "The service is temporarily unavailable. Please try again later." (the two issues on the most-used Actor)Reads Sogou's public index and WeChat's public article pages itself. When one of them turns an address away, the run goes on through the next route
Free plan: 25 runs in total, one page of results eachThe same on every plan, no run limit
An account's archive: "No", or "articles available in the public index … not guaranteed to be a publisher's complete lifetime archive"Whole albums (合集) of an account from the first to the last article, with permanent links: 1,000 of 1,000 and 115 of 115 in the tests. An account's complete list stays closed to visitors, see the limits
"Residential proxy access is used" for the searchThe run's own address and Apify's datacenter proxy first; residential addresses only when those are refused
Nothing about itA long article link without chksm, as other tools hand it out, answers every visitor with a captcha. This Actor reads it: 20 of 20 in a test

Sogou lists about 100 articles per keyword to a visitor, and that holds for every scraper of the public index. A run takes many keywords at once, and an article that several keywords find is saved, and charged, once.

🔎 What is the WeChat Official Account Scraper?

WeChat Official Accounts are the publishing channel of media, companies and public bodies in China. Their articles live at mp.weixin.qq.com, WeChat has no public search for them, and the only public keyword index is Sogou's WeChat search. This Actor searches that index, follows each result to the article and reads the article page, where WeChat carries the whole record. It also reads any article by its link and any album by its link or id.

What data does it extract?

  • Article: title, summary, author, publish time (Beijing time, Unix seconds and UTC), cover, link, WeChat's ids (biz, mid, idx, sn), the original mark (原创), publishing region, kind (article, image post, video post)
  • Full text: plain text with one line per paragraph, Markdown with headings, lists, quotes, tables, code blocks, links and images, and the HTML as WeChat stores it
  • Media: every image of the article with width and height, video ids
  • Account: name, gh_ id, WeChat ID (alias), description, avatar
  • Albums and topics: the albums (合集) an article belongs to, each with id, title, size and link, and its #hashtags

⬇️ Input

Fill in one or several of the first three fields.

FieldTypeDefaultWhat it does
keywordsarrayKeywords to search articles for, Chinese or English
articleUrlsarrayArticle links: https://mp.weixin.qq.com/s/..., the long form with __biz, mid, idx, sn (with or without chksm), or a signed link from a search
albumsarrayAlbum links or album ids
maxResultsinteger10Articles per keyword and per album, up to 5,000. A keyword ends at about 100
includeContentbooleantrueOpens every article of a search or album for its full record. Off: the list row only
publishedAfterstringA day such as 2026-09-01 (UTC) or an age such as 1 day; older articles are skipped unopened and uncharged
debugbooleanfalseWrites every request with its size and time to the log, for support

Example input

The newest articles on a topic with full text:

{
"keywords": ["人形机器人", "具身智能"],
"maxResults": 100
}

A daily brand watch that costs only what is new:

{
"keywords": ["特斯拉 FSD"],
"publishedAfter": "1 day",
"maxResults": 100
}

Articles by link:

{
"articleUrls": [
"https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw",
"https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247779806&idx=1&sn=90e649a28eb85dec7311d6627d37e36d"
]
}

Every article of an album, as a list with permanent links:

{
"albums": ["https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIzNjc1NzUzMw==&action=getalbum&album_id=1865468163396517889"],
"maxResults": 500,
"includeContent": false
}

⬆️ Output

One row per article, the same columns for every row. A full row, from a run of October 6, 2026 (text, Markdown, HTML and the two lists shortened here):

{
"articleId": "3236757533_2247780992_1",
"title": "“老黄骗人”!5070首批评测:说好1/3价格赛4090,实际不如4070Ti",
"digest": "博主:史上最差70系列",
"author": "关注前沿科技",
"accountName": "量子位",
"accountUserName": "gh_114e76fd6e5d",
"accountAlias": "QbitAI",
"accountDescription": "追踪人工智能新趋势,关注科技行业新突破",
"accountAvatar": "https://wx.qlogo.cn/mmhead/Q3auHgzwzM6PqxX9Yx8MibJ3nial8ialvVrRs3PxhCJm7eWgR7vFrowLA/0",
"publishTime": "2025-03-05 12:22",
"publishTimestamp": 1741148529,
"publishedAt": "2025-03-05T04:22:09+00:00",
"coverUrl": "https://mmbiz.qpic.cn/mmbiz_jpg/YicUhk5aAGtB8zqMsOsFEsStNXL6hpuYEEo7paXlpMMYk4vGbXsTSlicpz4ichWzMY4dmQbTRfIsoKl1mr5bPL2CA/0?wx_fmt=jpeg",
"articleUrl": "https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw",
"isTemporaryUrl": false,
"shortLink": "https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw",
"biz": "MzIzNjc1NzUzMw==",
"mid": 2247780992,
"idx": 1,
"sn": "24a33e0bf7a46cd28911be93eff3b531",
"contentText": "金磊 发自 凹非寺\n量子位 | 公众号 QbitAI\n一夜之间,RTX 5070被网友们喷成“史上最差的70系列”了。\n这咋回事呢?\n…",
"contentMarkdown": "##### 金磊 发自 凹非寺\n量子位 | 公众号 QbitAI\n\n一夜之间,**RTX 5070**被网友们喷成**“史上最差的70系列”**了。\n\n![](https://mmbiz.qpic.cn/mmbiz_png/…/640?wx_fmt=png&from=appmsg)\n\n…",
"contentHtml": "<h5 style=\"word-break: break-all;font-family: ExtraLight-0;…",
"characterCount": 2997,
"images": [
{"url": "https://mmbiz.qpic.cn/mmbiz_png/YicUhk5aAGtB8zqMsOsFEsStNXL6hpuYE3sPnVa42OQxBo5q68vLSQZDOTKElicOib7y4uLTQOUpdUiavxajLoflSg/640?wx_fmt=png&from=appmsg", "width": 1080, "height": 845}
],
"videoIds": [],
"isOriginal": true,
"itemType": "article",
"ipRegion": {"country_name": "中国", "country_id": "156", "province_name": "北京"},
"albums": [
{"albumId": "1865468163396517889", "title": "英伟达", "articleCount": 115, "url": "https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzIzNjc1NzUzMw==&action=getalbum&album_id=1865468163396517889"}
],
"hashtags": [],
"sourceUrl": null,
"commentId": "3884868893382230017",
"source": "link",
"queryTarget": "https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw",
"position": null,
"docId": null,
"scrapedAt": "2026-10-06T21:28:40.086586+00:00"
}

articleId is WeChat's own key of an article (the account's number, the message and the article's place in it): the field to join on and to drop doubles by. source is search, link or album; queryTarget is the keyword, the link or the album id the row came from; position is the place in Sogou's list or the article's number in the album; docId is Sogou's id of a search result, the same for every keyword that finds it.

A list row (includeContent: false) has the same columns, most of them null. From a search it holds title, digest (Sogou's excerpt), accountName, the three time fields, coverUrl, articleUrl, docId and position. From an album it holds title, accountName, accountUserName, the time fields, coverUrl, the permanent articleUrl, articleId, biz, mid, idx, sn, albums and position.

How often the optional fields were filled in a search of 97 articles read with full text: author 66, accountAlias 57, images 80, albums 22, sourceUrl 16, hashtags 7, ipRegion 97. A field WeChat does not send is null, a list without entries is empty.

The run's SUMMARY record lists, per keyword and album and for the links, how many articles were saved and listed, how many were older than asked, not opened or gone, and how the reading ended.

💰 What a run costs

Apify planPer 1,000 articles with full textPer 1,000 list rows
Free$4.00$1.50
Bronze$3.80$1.40
Silver$3.50$1.30
Gold, Platinum, Diamond$3.30$1.20

An article with its full record costs two events, the article ($0.0015) and the full record ($0.0025); a list row costs the article only. Apify's standard start event ($0.00005 per run at the default memory) is the only other charge. With a maximum charge set for the run, the Actor stops when the next article would pass it.

Examples on the Free plan: the sample run of 10 articles with full text, $0.04. One keyword to the end of Sogou's list with full text, about $0.39. An album of 1,000 articles as a list, $1.50. A daily watch of one keyword that finds seven new articles, $0.03.

⏱️ Measured (October 6 and 7, 2026)

RunRowsTime
Sample input: 10 articles for one keyword, with full text1016 to 18 s
One keyword to the end of Sogou's list, with full text97139 s
One keyword to the end of the list, list rows only9168 s
Three keywords side by side, 30 articles each, with full text9071 s
40 article links, 20 of them without chksm, with full text4021 s
An album of 1,000 articles, list rows only (the album says 1,000)1,00030 s
An album of 115 articles with full text (the album says 115)11562 s
One keyword, publishedAfter: 1 day (7 of the 84 listed)729 s

Measured from a test server in Germany, not from Apify's network: WeChat was read directly, Sogou through Apify's datacenter proxy after the server's own address had used up its allowance. In three further runs the datacenter addresses were refused as well and Sogou was read through residential addresses; such a run is slower (25 list rows took 49 s). Peak memory was 161 MB in the 97-article run. A run killed after 9 seconds in the middle of a keyword, an album and two links, and started again on the same dataset, ended with 52 rows, none of them twice.

📚 How to get the articles of one account

WeChat shows an account's article list inside its app only. What a visitor can read are the account's albums (合集), and many accounts file their articles in them: in a search of 97 articles, 22 belonged to at least one album, the largest with 893 articles.

  1. Read one article of the account, by link or from a keyword search. Its row names the albums it belongs to in albums, with size and link.
  2. Give those album links in albums. Every article of the album comes back with its permanent link, newest first, with full text when includeContent is on.

Searching the account's name as a keyword returns what Sogou's index holds for it: 32 of 91 results were the account's own articles for one name, 48 of 96 for another and none for a third.

🤖 For AI agents

Smallest useful calls:

{"keywords": ["人工智能"], "maxResults": 10}
{"articleUrls": ["https://mp.weixin.qq.com/s/TSNQKkRpN1qbKsT7BvzqIw"]}

All three target fields are arrays and can be combined in one run. No credentials are needed. Every row has the same columns; contentMarkdown is the article for a language model, contentText the same without marks. A keyword without results, a wrong link and a deleted article return no row, and the status message and SUMMARY say so. A search result's articleUrl is a signed link (isTemporaryUrl: true) and not a permanent one: store the text, not the link. Read counts, likes and comments are not public and are not returned.

💡 Use cases

  • 📈 Brand and topic monitoring in China: what Official Accounts published about a brand, a product or a policy today, with the full text for analysis instead of a headline.
  • 🧠 Chinese text for language models and retrieval: articles as clean Markdown with titles, dates and sources, by topic or by album.
  • 🗂️ Archiving: articles by link with text, images and ids, before an account deletes them.
  • 🔍 Publisher research: which accounts write about a topic, their WeChat ID and description, and their albums as reading lists.

⚠️ Limits, stated plainly

  • The times above are from a test server, not from Apify's network. Sogou serves an address about 40 requests in a row and then shows a captcha for half a minute, so the Actor reads each result page through a fresh visitor: its own address first, then Apify's datacenter proxy, then residential addresses.
  • About 100 articles per keyword. Sogou shows a visitor ten pages of ten results, 91 to 97 articles in the tests, in its own order: mostly the last days, with older articles mixed in. It takes no date filter, no sort order and no account filter from a visitor; publishedAfter filters what is listed.
  • A search result has no permanent link. Its articleUrl is Sogou's signed link, and the page behind it names no sn and no short link. The link still opened two hours after the search in a test; how long it lasts was not measured, and it is not meant to last. Rows from article links and albums carry permanent links.
  • An account's complete article list is not public, and neither are read counts, likes, shares, comments, the account search, an account's registered company or the WeChat Index. WeChat answers these calls with "open link in Weixin" or "no session", and its call for an article's counts leaves the counts out for a visitor. This Actor does not return them.
  • Deleted and hidden articles return no row. One of 95 results in a test was hidden by its author's privacy setting. The status message counts them.
  • Video and audio posts have a record without text; a video post carries its video id. Audio posts were not among the tested articles.
  • Images are links to WeChat's image servers; the Actor does not download them. Formulas and drawings that an article holds as vector graphics are left out of text and Markdown.
  • digest is the article's own summary; when it has none, a search row keeps Sogou's excerpt.
  • Times: publishTime is Beijing time as WeChat shows it, publishedAt the same moment in UTC.

❓ FAQ

Do I need a WeChat account, cookies or a proxy of my own? No.

Can I use the input I wrote for another WeChat Actor? Mostly. operation (articleSearch, articleDetail), mode, keyword, keywords, articleUrls, links, maxPages (a page is ten results here), maxItems, includeContent and publishTime (day, week, halfYear) are read. Operations for read counts, comments, account histories and the WeChat Index end the run with a message and without a charge.

Are the field names the same as on the most-used WeChat Actor? For an article, yes: articleUrl, title, author, digest, accountName, accountUserName, publishTime, publishTimestamp, coverUrl, contentText, contentHtml, images, ipRegion, commentId, isOriginal, shortLink, hashtags. Differences: albums is a list of all albums instead of one album; source and queryTarget take the place of operation; a search row has the columns of an article row; there is no raw content object and there are no engagement numbers. Added: contentMarkdown, accountAlias, accountDescription, biz, mid, idx, sn, articleId, publishedAt.

My long link shows a captcha in the browser. Does it work here? Yes. WeChat answers a long link (__biz, mid, idx, sn) that lacks its chksm field with a captcha page. The Actor reads such links as well, and the row's articleUrl is the complete permanent link as WeChat names it. The chksm value in it differs from read to read, so join on articleId, not on the link.

How do I watch a keyword every day? Schedule the run with publishedAfter: "1 day". Articles listed but older are skipped before they are opened and cost nothing.

Why does an article appear only once when two of my keywords find it? An article is saved, and charged, once per run, under the first keyword that found it. queryTarget says which.

What happens at a spending limit or a timeout? The run stops cleanly, keeps its rows and says in the status message where it stopped. Started again on the same dataset (resurrected), it continues without saving a row twice.

How do I call it from code? With the Apify API or the Python and JavaScript clients; every run returns a dataset you can fetch as JSON or CSV. It also works as a tool through Apify's MCP server.

Is it legal? The Actor reads what Sogou and WeChat show to every visitor without login. Articles are their authors' work: copyright applies to republishing them, and authors named in a byline are people, so GDPR, China's PIPL and similar rules apply to how you store and use the data. Respect the terms of WeChat and Sogou.

🔗 You might also like

Keywords: wechat scraper, wechat official account scraper, 微信公众号 爬虫, 公众号 文章 采集, weixin article scraper, mp.weixin.qq.com scraper, wechat article full text, wechat article api, sogou wechat search, 搜狗微信搜索, wechat article markdown, wechat album scraper, 合集, china social media scraper, chinese content for llm, wechat brand monitoring, wechat media monitoring, gongzhonghao data