# Sogou WeChat Article Search Scraper (`parsebird/sogou-wechat-search-scraper`) Actor

Search WeChat Official Account articles on Sogou WeChat (搜狗微信) by keyword or search URL. Get title, snippet, account name, publish date, cover image and links. Export JSON, CSV or Excel.

- **URL**: https://apify.com/parsebird/sogou-wechat-search-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.69 / 1,000 articles

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

### Sogou WeChat Article Search Scraper

**Sogou WeChat Article Search Scraper** searches [Sogou WeChat search](https://weixin.sogou.com/) (搜狗微信搜索) for WeChat Official Account (微信公众号) articles by keyword or search URL and returns each result's title, snippet, account name, publish date, cover image and links. Export the results as JSON, CSV or Excel.

<table><tr>
<td style="border-left:4px solid #07C160;padding:12px 16px;font-weight:600">
Track brands, topics, competitors and campaign phrases across WeChat Official Accounts in Chinese or English, with search page and position for every result, a stable result key for deduplication between runs, and optional mp.weixin.qq.com article links.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/sogou-wechat-search-scraper. Searches Sogou WeChat article search (weixin.sogou.com/weixin?type=2) and returns WeChat Official Account (微信公众号) article search results. Call via ApifyClient: client.actor("parsebird/sogou-wechat-search-scraper").call(run_input={"keywords": ["AI", "新能源汽车"], "maxItems": 20}). Inputs: keywords (array of strings, Chinese or English, one Sogou search each), searchUrls (array of weixin.sogou.com/weixin?...&query=... URLs; query and extra parameters kept, page sets the first page), maxItems (integer 1-10000, default 20, total across all queries, shared evenly between queries), maxPagesPerQuery (integer 1-50, default 10; Sogou shows at most 10 pages of about 10 results to logged-out visitors), resolveArticleUrls (boolean, default false: open each Sogou link and save the temporary mp.weixin.qq.com link), requestDelayMs (integer 0-10000, default 800), proxyConfiguration (object, default Apify Proxy). Output fields: resultKey (rk1_ + sha256 of account, title and timestamp), keyword, page, position, title, snippet, accountName, publishDateText (YYYY-MM-DD, China time), publishTimestamp (Unix seconds), sogouUrl, articleUrl (null unless resolveArticleUrls), coverImageUrl, sourceUrl, scrapedAt. Pricing: pay per article saved. Full API spec: https://apify.com/parsebird/sogou-wechat-search-scraper/api. Get your token: https://console.apify.com/settings/integrations.
```

### What is Sogou WeChat Article Search Scraper?

WeChat Official Accounts are where Chinese media, brands, government bodies and independent writers publish their articles. WeChat has no public search API, but **Sogou WeChat search** at `weixin.sogou.com` indexes these articles and is the public web search over them.

**Sogou WeChat Article Search Scraper** turns that search into a clean dataset. Enter a keyword such as `新能源汽车`, press Start, and get the same results you would see on Sogou, with the account name, publish date, snippet and cover image of every article. No WeChat account, Sogou login or API key is needed. It works as a **Sogou WeChat API alternative** for brand monitoring, media research and content discovery.

### What can Sogou WeChat Article Search Scraper do?

- 🔎 **Keyword search.** Search any number of keywords in Chinese or English. Each keyword runs as its own Sogou WeChat article search.
- 🔗 **Search URLs.** Paste a `weixin.sogou.com/weixin?...` URL you already have. The query and its extra parameters are kept, and a `page` parameter sets the first page to read.
- 📍 **Rank tracking.** Every result has its search page and position, so you can see where an article ranks for a keyword.
- 🧬 **Cross-run deduplication.** `resultKey` is built from the account name, title and publish time, so the same article gets the same key in every run.
- 🔓 **Optional article links.** Turn on **Resolve article URLs** to also get the `mp.weixin.qq.com` link behind each Sogou result.
- 🛡️ **Anti-spider handling.** Sogou blocks IPs that send too many requests. The scraper paces its requests and moves to a new proxy IP when Sogou shows its anti-spider page.
- 📅 **Scheduling and integrations.** Run daily with [Apify Schedules](https://docs.apify.com/platform/schedules) and send results to Google Sheets, Slack, Zapier, Make or a webhook with [Apify integrations](https://docs.apify.com/platform/integrations).
- 🔌 **API access.** Start runs and read results from your own code with the [Apify API](https://docs.apify.com/api/v2), in JSON, CSV, Excel, XML or HTML.

### What data can you extract from Sogou WeChat search?

| Field | Description |
|-------|-------------|
| `resultKey` | Stable, versioned result key (`rk1_` + SHA-256 of account name, title and publish time) for deduplication across runs |
| `keyword` | The keyword, or the query taken from a search URL |
| `page` | Sogou result page the article was found on |
| `position` | Position of the article on that page (1 = first) |
| `title` | Article title, without Sogou's highlight markup |
| `snippet` | Search result summary |
| `accountName` | WeChat Official Account name |
| `publishDateText` | Publish date as `YYYY-MM-DD`, in China time (UTC+8) |
| `publishTimestamp` | Publish time from Sogou as a Unix timestamp in seconds |
| `sogouUrl` | Sogou result link (`weixin.sogou.com/link?url=...`) |
| `articleUrl` | `mp.weixin.qq.com` article link when **Resolve article URLs** is on, otherwise `null` |
| `coverImageUrl` | Search result thumbnail |
| `sourceUrl` | The exact Sogou search page that was fetched |
| `scrapedAt` | Time the record was saved (ISO 8601, UTC) |

### How to scrape Sogou WeChat search

1. Open [Sogou WeChat Article Search Scraper](https://apify.com/parsebird/sogou-wechat-search-scraper) in Apify Console.
2. Enter one or more **Keywords**, such as `AI` or `新能源汽车`, or paste **Sogou WeChat search URLs**.
3. Set **Maximum articles**. It is shared evenly between your keywords and URLs, and any share a query doesn't use goes to the next one.
4. Optionally lower **Maximum pages per query**, or turn on **Resolve article URLs** if you need `mp.weixin.qq.com` links.
5. Click **Start** and wait for the run to finish.
6. Download the results from the **Output** tab as JSON, CSV, Excel, XML or HTML, or read them through the API.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `keywords` | array | No\* | — | Keywords to search, one Sogou WeChat article search each |
| `searchUrls` | array | No\* | `[]` | Full `weixin.sogou.com/weixin?...` search URLs |
| `maxItems` | integer | No | `20` | Maximum articles to save across all keywords and URLs (1–10,000) |
| `maxPagesPerQuery` | integer | No | `10` | Maximum result pages to read per keyword or URL (1–50) |
| `resolveArticleUrls` | boolean | No | `false` | Open each Sogou link and save the `mp.weixin.qq.com` link |
| `requestDelayMs` | integer | No | `800` | Pause between requests to Sogou in milliseconds (0–10,000) |
| `proxyConfiguration` | object | No | Apify Proxy | Proxy used for Sogou requests |

\* Add at least one keyword or one search URL.

Example input:

```json
{
    "keywords": ["AI", "新能源汽车"],
    "searchUrls": [],
    "maxItems": 20,
    "maxPagesPerQuery": 10,
    "requestDelayMs": 800,
    "resolveArticleUrls": false
}
```

### Output example

```json
[
    {
        "resultKey": "rk1_063e77d4ef36bf30ca19af657ae02de5df2136b867d331f17c1933947a973dcc",
        "keyword": "AI",
        "page": 1,
        "position": 1,
        "title": "AI 前沿认知周报 Vol.05",
        "snippet": "AI 正在改变公司的基本结构:当 Agent 的工作时间超过人类从 AI 使用差距、组织重构到就业变化:三项研究揭示企业智能化的新阶段...",
        "accountName": "DataArchitect",
        "publishDateText": "2026-10-25",
        "publishTimestamp": 1792914989,
        "sogouUrl": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSzr7rqWYtfem...&type=2&query=AI&token=...",
        "articleUrl": null,
        "coverImageUrl": "https://img01.sogoucdn.com/v2/thumb?appid=201147&url=https%3A%2F%2Fmmbiz.qpic.cn%2F...&sign=...",
        "sourceUrl": "https://weixin.sogou.com/weixin?type=2&query=AI&ie=utf8&page=1",
        "scrapedAt": "2026-10-25T10:01:14.023Z"
    },
    {
        "resultKey": "rk1_50f22f2867beb7e6835540e1eb3def48c6c29e121f31a3d458cebc619983a162",
        "keyword": "瑞幸咖啡",
        "page": 1,
        "position": 1,
        "title": "替瑞幸咖啡“打广告”?",
        "snippet": "进入2019年,瑞幸咖啡频频登上百度热搜榜.以目前的体量,这家初创企业似乎配不上这样的“殊荣”. ofo上热榜,是因为顶峰时每...",
        "accountName": "虎嗅APP",
        "publishDateText": "2019-01-11",
        "publishTimestamp": 1547168118,
        "sogouUrl": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSzr7rqWYtfem...&type=2&query=%E7%91%9E%E5%B9%B8%E5%92%96%E5%95%A1&token=...",
        "articleUrl": "https://mp.weixin.qq.com/s?src=11&timestamp=1792922670&ver=7048&signature=0BpltYG0LIN2*LxSRXP-oBSvZ5r0z98q...&new=1",
        "coverImageUrl": "https://img01.sogoucdn.com/v2/thumb?appid=201147&url=http%3A%2F%2Fmmbiz.qpic.cn%2F...&sign=...",
        "sourceUrl": "https://weixin.sogou.com/weixin?type=2&query=%E7%91%9E%E5%B9%B8%E5%92%96%E5%95%A1&ie=utf8&page=1",
        "scrapedAt": "2026-10-25T10:04:38.311Z"
    }
]
```

The second record was saved with **Resolve article URLs** on.

### Use cases

- **Brand monitoring.** Schedule a daily search for your brand and product names and see which Official Accounts write about them.
- **Competitor tracking.** Follow competitor names and campaign phrases across Chinese media and KOL accounts.
- **Media and PR research.** Find the accounts covering a topic before you pitch a story.
- **Market research.** Collect article titles and snippets on an industry, such as `新能源汽车` or `跨境电商`, for trend analysis.
- **Content discovery for AI pipelines.** Build a list of relevant articles first, then fetch the full text with [WeChat Official Accounts Scraper](https://apify.com/parsebird/wechat-official-accounts-scraper).

### How it works

1. Each keyword, or the query of each search URL, is searched on Sogou WeChat article search (`type=2`).
2. Result pages are read in order, about 10 articles per page, until the page limit, the article limit or the last page.
3. Each result card is turned into a record. Duplicates within a query are dropped by `resultKey`.
4. With **Resolve article URLs** on, each Sogou link is opened on the same session that ran the search, and the `mp.weixin.qq.com` link it leads to is saved.
5. Requests are paced by **Delay between requests**. When Sogou returns its anti-spider page, the scraper switches to a new proxy IP and tries again.

### How much does it cost to scrape Sogou WeChat search?

Sogou WeChat Article Search Scraper uses pay-per-event pricing. You pay for each article saved to the dataset. Compute and proxy usage are included in the event price and are not billed separately.

| Event | Apify plan | Price per event | Price per 1,000 |
|-------|------------|-----------------|-----------------|
| `article` | Free | $0.00199 | **$1.99** |
| `article` | Bronze | $0.00189 | **$1.89** |
| `article` | Silver | $0.00179 | **$1.79** |
| `article` | Gold | $0.00169 | **$1.69** |

One event is one article result saved. For example, 1,000 results cost $1.99 on the Free plan, and the default run of 20 articles costs about $0.04. Apify's Free plan includes $5 of platform usage every month. Set a maximum cost per run in Console and the scraper stops when it is reached.

### Use the scraper with Python and JavaScript

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/sogou-wechat-search-scraper").call(run_input={
    "keywords": ["新能源汽车", "AI"],
    "maxItems": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["publishDateText"], item["accountName"], item["title"])
```

**JavaScript** (`npm install apify-client`):

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/sogou-wechat-search-scraper').call({
    keywords: ['新能源汽车', 'AI'],
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(item.publishDateText, item.accountName, item.title));
```

See the [API tab](https://apify.com/parsebird/sogou-wechat-search-scraper/api) for every endpoint, or the [Apify API client docs](https://docs.apify.com/api/client/python) for more options.

### Is it legal to scrape Sogou WeChat search?

Sogou WeChat Article Search Scraper collects only data that Sogou shows publicly to anyone who visits its search page, without logging in. It doesn't access private messages, accounts or any data behind a login. Results can still contain personal data, such as an author's name, which is protected by laws like the GDPR and China's Personal Information Protection Law. Scrape personal data only when you have a legitimate reason, and check Sogou's terms of service. If you are unsure, consult a lawyer. Read more in Apify's post [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

### Other ParseBird scrapers for Chinese platforms

| Actor | What it does |
|-------|--------------|
| [WeChat Official Accounts Scraper (微信公众号)](https://apify.com/parsebird/wechat-official-accounts-scraper) | Full WeChat article text, HTML, Markdown, images and account profiles |
| [Taobao & Tmall Scraper](https://apify.com/parsebird/taobao-tmall-scraper) | Taobao and Tmall product search results and details |
| [NetEase Cloud Music Scraper](https://apify.com/parsebird/netease-cloud-music-scraper) | Songs, playlists, artists and comments from NetEase Cloud Music |
| [che168 二手车 Autohome Scraper](https://apify.com/parsebird/che168-scraper) | Used car listings from che168.com |

### FAQ

**How many results can I get per keyword?**
Sogou shows at most 10 result pages per query to visitors who are not logged in, with about 10 articles per page (some pages show fewer). That is up to about 100 articles per keyword. To collect more, add related keywords or longer phrases, such as `新能源汽车 电池` and `新能源汽车 销量`.

**Why does maxItems give each keyword a share?**
So that every keyword gets results. With 2 keywords and `maxItems` 20, each keyword gets up to 10 articles. When one keyword has fewer results, the rest goes to the next keyword.

**Can I filter by date or sort by newest?**
Sogou's date filters only return results to logged-in users, so the scraper uses Sogou's default relevance order. Every record has `publishDateText` and `publishTimestamp`, so you can filter and sort the dataset by date afterwards.

**Is articleUrl a permanent link?**
No. Sogou leads to a signed `mp.weixin.qq.com/s?src=11&timestamp=...&signature=...` link, which is temporary. Use it to open or fetch the article soon after the run. For full article text, use [WeChat Official Accounts Scraper](https://apify.com/parsebird/wechat-official-accounts-scraper).

**Why is Resolve article URLs off by default?**
It needs one extra request per article, and Sogou blocks IPs that send many requests. The scraper switches IP when that happens, but runs are slower. If a link still can't be resolved, its `articleUrl` is `null`.

**Do sogouUrl links keep working?**
Sogou result links are tied to the search session that produced them, so they may not open later in another browser. Use `resultKey`, `title` and `accountName` to identify an article.

**Sogou shows anti-spider pages. What can I do?**
Keep the default Apify Proxy and increase **Delay between requests**, for example to 2000 ms.

**Can I schedule runs and send the results somewhere?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run hourly, daily or weekly, and [integrations](https://apify.com/integrations) to send results to Google Sheets, Slack, Zapier, Make, Airbyte or a webhook. Use `resultKey` to keep only new articles between runs.

**Something doesn't work. Where do I report it?**
Open an issue in the [Issues tab](https://apify.com/parsebird/sogou-wechat-search-scraper/issues). We read every report.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/sogou-wechat-search-scraper/changelog.md

# Actor input Schema

## `keywords` (type: `array`):

Enter brand names, topics, competitors or campaign phrases, one per line, in Chinese or English. Each keyword runs as its own Sogou WeChat article search.

## `searchUrls` (type: `array`):

Paste full weixin.sogou.com search URLs, such as https://weixin.sogou.com/weixin?type=2\&query=AI. The query and the extra URL parameters are kept; a page parameter sets the first page to read.

## `maxItems` (type: `integer`):

Maximum article results to save across all keywords and URLs.

## `maxPagesPerQuery` (type: `integer`):

Maximum Sogou result pages (10 articles each) to read for each keyword or search URL. Sogou shows at most 10 pages per query to logged-out visitors, so values above 10 read 10 pages.

## `resolveArticleUrls` (type: `boolean`):

Open each Sogou result link and save the mp.weixin.qq.com article link it leads to. This needs one extra request per article, so runs are slower.

## `requestDelayMs` (type: `integer`):

Pause between requests to Sogou, in milliseconds. Increase it if Sogou starts showing anti-spider pages.

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

Sogou limits how many requests one IP can make, so the scraper changes IP when it sees an anti-spider page. Apify Proxy (datacenter) works well.

## Actor input object example

```json
{
  "keywords": [
    "AI",
    "新能源汽车"
  ],
  "searchUrls": [],
  "maxItems": 20,
  "maxPagesPerQuery": 10,
  "resolveArticleUrls": false,
  "requestDelayMs": 800,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "keywords": [
        "AI",
        "新能源汽车"
    ],
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/sogou-wechat-search-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 = {
    "keywords": [
        "AI",
        "新能源汽车",
    ],
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/sogou-wechat-search-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 '{
  "keywords": [
    "AI",
    "新能源汽车"
  ],
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/sogou-wechat-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/sogou-wechat-search-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/jfLDfHi6jy1FiBhIP/builds/iwLMoDeg72VtBkn0C/openapi.json
