
Wechat Article Search
Search Sogou WeChat index for 公众号 articles so you can research niches, competitors, and content angles without manual browsing.
Overview
wechat-article-search is an agent skill most often used in Idea (also Grow, Validate) that fetches 微信公众号 article listings from Sogou WeChat search for research and content planning.
Install
npx skills add https://github.com/wuchubuzai2018/expert-skills-hub --skill wechat-article-searchWhat is this skill?
- Runs as a Node.js script that queries Sogou WeChat search over HTTPS and parses HTML results with Cheerio.
- Rotates across a fixed pool of 20 User-Agent strings on each request to reduce trivial fingerprint blocking.
- Handles compressed responses via zlib for standard Sogou result pages.
- Intended as an agent-callable integration for gathering article titles, links, and snippets for downstream summarization
- Best paired with your own compliance review—scraping third-party indexes can break or violate terms without warning.
- Fixed pool of 20 User-Agent strings rotated per request.
- Parses Sogou WeChat HTML with Cheerio over Node.js https.
Adoption & trust: 1.2k installs on skills.sh; 26 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to see what WeChat publishers already say about your niche but Sogou’s UI makes systematic article discovery slow for a solo builder.
Who is it for?
Solo builders doing China-market or WeChat-adjacent research who want agent-driven Sogou article discovery before writing specs or campaigns.
Skip if: Teams that need official WeChat APIs, guaranteed uptime, bulk archival of full article text, or compliance-guaranteed data pipelines without scraping risk.
When should I use this skill?
When you need structured 微信公众号 article search results from Sogou for research, competitor scanning, or content ideation in a China-facing project.
What do I get? / Deliverables
You get a parsed batch of WeChat article search hits your agent can rank, summarize, or fold into competitor and content briefs for the next planning step.
- Parsed list of WeChat article entries (titles, URLs, snippets) from a Sogou search query
- Agent-ready research notes derived from returned links
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
WeChat article discovery is a canonical research step before you commit to a product or campaign, especially for China-facing audiences. The skill pulls third-party article listings and metadata from Sogou’s WeChat search, which fits opportunity and audience research rather than in-repo build work.
Where it fits
Pull Sogou hits for your product keyword to see which 公众号 accounts already own the narrative.
List recent competitor articles on WeChat to compare positioning before you commit to a feature set.
Sample article volume and themes on a pain point to judge whether the problem is talked about enough to warrant a build.
Harvest reference articles to brief your agent on gaps you can cover in your own newsletter or landing copy.
How it compares
Use this skill package for HTML-based Sogou discovery instead of assuming a first-party WeChat MCP or API will expose the same public search index.
Common Questions / FAQ
Who is wechat-article-search for?
It is for solo and indie builders—and small teams—who research Chinese-language markets and want their Claude Code, Cursor, or Codex agent to collect 公众号 article leads from Sogou automatically.
When should I use wechat-article-search?
Use it in Idea/research to map competitor posts and audience topics; in Validate/scope to sanity-check demand signals from WeChat publishers; and in Grow/content when you need fresh article references before drafting or repurposing ideas.
Is wechat-article-search safe to install?
Review the Security Audits panel on this Prism page and inspect the Node script yourself—it performs outbound HTTPS scraping and is not a vetted official WeChat connector.
SKILL.md
READMESKILL.md - Wechat Article Search
#!/usr/bin/env node /** * 微信公众号文章搜索工具 * 通过搜狗微信搜索获取微信公众号文章 */ const https = require('https'); const cheerio = require('cheerio'); const zlib = require('zlib'); // 可配置 User-Agent 池(固定 20 个),每次请求随机选一个,避免固定 UA const USER_AGENTS = [ 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_2_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 13_6_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edg/123.0.0.0 Chrome/123.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edg/122.0.0.0 Chrome/122.0.0.0 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:123.0) Gecko/20100101 Firefox/123.0', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0', 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1', 'Mozilla/5.0 (iPad; CPU OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1', 'Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 14; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.36', 'Mozilla/5.0 (Linux; Android 13; Mi 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36', ]; function getRandomUserAgent() { return USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)]; } const HEADERS = { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'Accept-Encoding': 'identity', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Host': 'weixin.sogou.com', 'Referer': 'https://weixin.sogou.com/', }; function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } function decompressBody(buffer, contentEncoding) { if (!contentEncoding) return buffer; const encoding = String(contentEncoding).toLowerCase(); try { if (encoding.includes('gzip')) return zlib.gunzipSync(buffer); if (encoding.includes('deflate')) return zlib.inflateSync(buffer); if (encoding.includes('br')) return zlib.brotliDecompressSync(buffer); } catch { // 解压失败时直接返回原始数据,避免影响主流程 } return buffer; } /** * 统一的网络请求工具(仅 https),带超时与重试,可处理 gzip/deflate/br 解压。 * @param {{ * url: string, * method?: string, * headers?: Object, * timeoutMs?: number, * retries?: number * }} options * @returns {Promise<{statusCode: number, headers: Object, body: Buffer}>} */ async function request(options) { const { url, method = 'GET', headers = {}, timeoutMs = 15000, retries = 0, } = options; const lastErrorPrefix = `Request failed: ${method} ${url}`; for (let attempt = 0; attempt <=