# WeChat Article Scraper 公众号文章 — Search + Full Text Markdown (`peliex/wechat-article-scraper`) Actor

Search WeChat Official Account (微信公众号) articles by keyword and get the FULL article text as clean Markdown — title, account, publish time, images, word count. No login, no cookies. Built for AI/RAG pipelines, China market research and media monitoring.

- **URL**: https://apify.com/peliex/wechat-article-scraper.md
- **Developed by:** [hy c](https://apify.com/peliex) (community)
- **Categories:** Social media, News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 article with full texts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does WeChat Article Scraper do?

**WeChat Article Scraper** searches **WeChat Official Account (微信公众号) articles** by keyword and returns the **full article text as clean Markdown** — plus title, account, author, publish time, images and word count. One run, one dataset, ready for your LLM, RAG pipeline, spreadsheet or BI tool.

- 🔎 **Search by keyword**: any topic, brand, company or person (中文 keywords work best)
- 📄 **Full text, not snippets**: Markdown + plain text + every image URL, including picture-style posts (图片消息)
- 🔗 **Or paste article URLs**: extract full text from `mp.weixin.qq.com` links you already have
- 🗓️ **Date filter**: last 24 hours / week / month / year
- 🚫 **No login, no cookies, no WeChat account** needed
- 💸 **$5 per 1,000 full-text articles**: pay only for articles delivered

WeChat is where Chinese companies, analysts, regulators and KOLs publish first. Most of it never reaches Google. This Actor makes it searchable and machine-readable.

### Who uses it?

- **AI / RAG teams**: build a Chinese-language knowledge base of fresh industry articles in Markdown
- **China market research**: track what's being written about an industry (新能源汽车, 大模型, 跨境电商, …)
- **Brand & competitor monitoring**: find every article mentioning your brand or competitors this week
- **Investors & analysts**: follow companies, funding news and policy commentary in the source language
- **Journalists & academics**: collect a corpus of articles on a topic with publish dates and sources

### How to use it

1. Enter one or more **Search keywords** (e.g. `大模型`, `比亚迪 出海`, `跨境电商 关税`).
2. Pick **Max articles per keyword** (up to 100) and optionally a **Published within** window.
3. Click **Start**. Download results as JSON, CSV, Excel or Markdown-ready JSON, or pull them through the Apify API.

Only need titles and summaries? Turn off **Fetch full article text** for a faster, cheaper run.

### Input example

```json
{
  "queries": ["大模型", "新能源汽车 出海"],
  "maxArticlesPerQuery": 20,
  "timeRange": "week",
  "includeContent": true
}
```

Or extract specific articles:

```json
{
  "articleUrls": ["https://mp.weixin.qq.com/s/XXXXXXXXXXXX"]
}
```

### Output example

```json
{
  "query": "大模型",
  "rank": 4,
  "title": "大模型驱动车云协同：智能网联规模化下半场的必备能力",
  "accountName": "汽车规划与鬼画",
  "accountId": "gh_2d60e8065fb0",
  "author": "吴淞1995",
  "publishedAt": "2026-09-22T23:39:37+00:00",
  "ipLocation": "上海",
  "summary": "…",
  "wordCount": 295,
  "contentMarkdown": "报告核心就一句：智能网联车走向规模化后，车云协同得从“保连接”切到“用智能”。…\n\n![](https://mmbiz.qpic.cn/...)",
  "contentText": "报告核心就一句：…",
  "images": ["https://mmbiz.qpic.cn/..."],
  "coverImage": "https://mmbiz.qpic.cn/...",
  "articleId": "Mzg2NjEwMjExNw==_2247530632_2",
  "biz": "Mzg2NjEwMjExNw==",
  "url": "https://mp.weixin.qq.com/s?src=11&timestamp=...",
  "source": "search",
  "scrapedAt": "2026-09-23T02:05:11+00:00"
}
```

| Field | Description |
|---|---|
| `title`, `summary` | Article title and the author's summary |
| `accountName`, `accountId` | Official Account display name and `gh_` ID |
| `author` | Byline, when the article has one |
| `publishedAt` | Publish time (ISO 8601, UTC) |
| `ipLocation` | Publisher's IP province, as shown by WeChat |
| `contentMarkdown` / `contentText` | Full article body as Markdown / plain text |
| `images` | All image URLs in the article |
| `articleId` | Stable ID (`biz_mid_idx`) for deduplication across runs |
| `url` | Article link (links found via search are temporary WeChat links: store `articleId` for dedup) |

### Pricing

| Event | Price |
|---|---|
| Article with full text | **$0.005** ($5 / 1,000) |
| Search result without full text (`includeContent: false`) | $0.0015 ($1.50 / 1,000) |

Example: monitoring 10 keywords × 20 new articles every day costs about **$1 per day**. Set **Maximum cost per run** in the run options and the Actor stops cleanly when it's reached.

### Tips & limits

- Sogou (the WeChat search index) shows at most **100 results per keyword**. For more coverage, use more specific keywords (`大模型 医疗`, `大模型 融资`, …).
- The date filter is applied to those top results, so a narrow window (e.g. 24 hours) on a broad keyword may return fewer articles than requested.
- Results are in the original language (Chinese). Pipe `contentMarkdown` into any LLM to translate or summarize.
- Read/like counts and comments are not included (they require a logged-in WeChat client).
- Keep **Apify Proxy** enabled for large runs.

### Is it legal?

This Actor only collects **publicly available** articles that anyone can open in a browser without logging in. It does not access private accounts or personal messages. You are responsible for how you use the data. Respect copyright and local law (including China's PIPL and the GDPR) when storing or republishing content.

### Integrations & API

Use it from Python, JavaScript, Make, Zapier, n8n, LangChain, or as an **MCP tool** for AI agents via [Apify MCP server](https://mcp.apify.com). Schedule it daily in Apify to build a continuously updated feed.

### Feedback

Found a bug or need a field? Open an issue in the **Issues** tab and I usually respond within 24 hours.

# Actor input Schema

## `queries` (type: `array`):

Keywords to search WeChat Official Account articles for (Chinese works best, e.g. 大模型, 新能源汽车, 小米). Each keyword returns up to 'Max articles per keyword'.

## `articleUrls` (type: `array`):

Optional: mp.weixin.qq.com article links to extract full text from directly (no search needed).

## `maxArticlesPerQuery` (type: `integer`):

Up to 100 per keyword (Sogou shows at most 10 pages of 10 results).

## `timeRange` (type: `string`):

Only keep articles published within this period. Filter is applied to Sogou's top 100 results for each keyword, so a narrow window may return fewer articles.

## `includeContent` (type: `boolean`):

Open every article and extract its full text as Markdown + plain text + image list. Turn off for fast, cheaper search results only (title, summary, account, date).

## `includeHtml` (type: `boolean`):

Also return the article body HTML (large).

## `proxyConfiguration` (type: `object`):

Apify Proxy is recommended to avoid Sogou rate limits.

## Actor input object example

```json
{
  "queries": [
    "大模型"
  ],
  "maxArticlesPerQuery": 20,
  "timeRange": "any",
  "includeContent": true,
  "includeHtml": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped items in the default dataset.

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "大模型"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("peliex/wechat-article-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["大模型"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("peliex/wechat-article-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "大模型"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call peliex/wechat-article-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,peliex/wechat-article-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/A6p5EEnKz3CpCbgSo/builds/iBJI2Z5gumQdDXMRs/openapi.json
