agentCLAWHUBUnverified

Wechat Search Weread

微信公众号文章搜索skill。通过微信读书搜一搜获取最新文章,返回标题/公众号/时间/简介/直链。 Skill: Wechat Search Weread Owner: kanikig Summary: 微信公众号文章搜索skill。通过微信读书搜一搜获取最新文章,返回标题/公众号/时间/简介/直链。 Tags: latest:1.0.3, search:0.1.3, social-media:0.1.3, wechat:0.1.3, weread:0.1.3 Version history: v1.0.3 | 2026-06-09T05:07:15.794Z | user 去浏览器绑定:前提一处说明,后续步骤不指定浏览器;Scroll事件统一用dispatchEvent解决 v1.0.2 | 2026-06-09T01:05:35.700Z | user Fix Edge CDP scroll event: dispatchEvent('scroll') workaround for v149+ v1.0.1 | 2026-

OpenClaw

Rank

62

Safety

84

Downloads

1.7k

Updated

Oct 10, 2026

Version

1.0.3

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.7K downloads reported by the source. Last updated 10/10/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 10, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 10, 2026
Adoption signal
1.7K downloadsadoption · observed Oct 10, 2026
Latest release
1.0.3release · observed Jun 9, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17fjyh46ve2tpbjbrarkfm0jh86tgmx:wechat-search-weread
  1. Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
  2. Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-kanikig-wechat-search-weread/snapshot"

Documentation

CLAWHUB

147,437 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: wechat-search-weread
description: 微信公众号文章搜索skill。通过微信读书搜一搜获取最新文章,返回标题/公众号/时间/简介/直链。
category: social-media
---

# 微信读书公众号文章搜索

> 📦 [GitHub](https://github.com/KANIKIG/wechat-search-weread) · [ClawHub](https://clawhub.ai/skills/wechat-search-weread)

通过微信读书搜一搜搜索微信公众号文章,返回完整数据(含 `mp.weixin.qq.com` 文章链接)。

## 触发条件

用户需要搜索微信公众号文章,且 Exa 和搜狗方案不满足需求时使用。

> ⚠️ 微信读书官方 API (`/store/search` scope=2/4) 不支持公众号文章搜索(返回 `-2041`),详见 [api-limitations.md](references/api-limitations.md)。本浏览器方案是当前唯一可行途径。

## 前提

- [agent-browser](https://github.com/vercel-labs/agent-browser) 已安装
- 微信读书已登录(首次需扫码)
- WSL 用户需 CDP 端口转发(见 [wsl-cdp-browser.md](references/wsl-cdp-browser.md)),用 `agent-browser connect "http://<IP>:9223"` 建连后无需 `--cdp` flag
- **浏览器**:有 Edge 用 Edge,没有就 Chrome。CDP scroll 事件不触发时用 `window.dispatchEvent(new Event('scroll'))` 解决(见 [detailed-workflow.md](references/detailed-workflow.md) Step 3.2)。

## 流程概要(5 步,缺一不可)

| 步骤 | 要点 |
|------|------|
| **1. 启动浏览器** | 非WSL自动;WSL 参考 [wsl-cdp-browser.md](references/wsl-cdp-browser.md) |
| **2. 登录** | QR 扫码。首次 eval 触发的 QR 大概率过期 → 必须关闭弹窗→重新触发→提取(单 terminal 调用一气呵成)。**登录成功后删除 `/tmp/weread_qr.png`** |
| **3. 搜索+滚动** | 先备份 weread 标签页(保持登录态)→ goto 搜索页 → eval 滚动到「暂无更多内容」(封顶500条) |
| **4. 提取URL** | ① ≤50 篇:agent-browser eval 同步提取(最简单);② >50 篇:agent-browser eval 分批提取(每批 50,已验证 246 篇 100% 成功);③ execute_code + websockets 备选(有超时风险)。详见 [extraction-pattern.md](references/extraction-pattern.md) |
| **5. 清理** | 回到微信读书首页 → 关闭搜索页、mp 链接等所有多余标签页,只保留一个 weread 页面 |

> 🔴 **全部详细命令、代码块、陷阱表见 [references/detailed-workflow.md](references/detailed-workflow.md)**。

## 原理简述

- **搜索 API**: 页面 XHR → `weread.qq.com/web/wx_search_broker_proxy`(需 session cookie)
- **URL 获取**: DOM 无 href,点击 `.search_list_item` → Vue → `window.open(mp.weixin.qq.com/...)` → eval 拦截
- **滚动加载**: 每次 scrollTo 触发 XHR 加载 ~45 篇新文章
- **去重**: 每篇文章有唯一 `data-id`

## 结果投递

搜索完成后,**直接以最终回复输出结果**,系统会自动投递到当前对话。

输出格式(Step 4.4):搜到 X 篇 → 提取 Y 篇 → Z 篇有链接(成功率 N%)+ Top 10 列表,完整数据存 /tmp/urls.json。

🔴 **链接必须从 `/tmp/urls.json` 读取,严禁从控制台输出或记忆中复制 URL**。控制台输出会截断长 URL(丢失 `chksm` 或 `#rd`),导致微信打开显示"参数错误"。正确做法:

```bash
python3 -c "
import json
with open('/tmp/urls.json') as f:
    data = json.load(f)
for i, r in enumerate(data[:10]):
    print(f\"{i+1}. [{r['title']}]({r['url']}) — {r.get('source','')} · {r.get('date','')}\")
"
```

## References

- `references/detailed-workflow.md` — **完整操作手册**:Step 1-5 全部命令、QR 流程、滚动策略、URL 提取代码
- `references/extraction-pattern.md` — Python 提取代码模板(execute_code 中直接执行)
- `references/cdp-patterns.md` — CDP 交互模式参考
- `references/wsl-cdp-browser.md` — WSL 配置指南
- `references/api-limitations.md` — 微信读书 API 限制说明
- `references/llm-filter-pattern.md` — LLM 语义筛选模式:搜索噪音过滤(替代关键词黑名单)
- `references/topology-optimization-filter.md` — 拓扑优化领域专用筛选模式:已验证的排除正则、陷阱、持久化格式
- `references/edge-cdp-scroll-issue.md` — CDP scroll 事件不触发问题:诊断、验证方法、解决方案
- `scripts/search_weread.py` — 备选/调试脚本(非主流程)

README.md

# wechat-search-weread

[![GitHub](https://img.shields.io/badge/GitHub-KANIKIG%2Fwechat--search--weread-blue?logo=github)](https://github.com/KANIKIG/wechat-search-weread)
[![ClawHub](https://img.shields.io/badge/ClawHub-wechat--search--weread-orange)](https://clawhub.ai/skills/wechat-search-weread)

通过微信读书搜一搜,搜索微信公众号文章。返回**标题、公众号、发布时间、简介**以及 **`mp.weixin.qq.com` 直链**。

> ⚠️ **本项目只负责搜索和获取文章链接,不包含抓取文章正文内容。**

## 和其他方案比

| 方案 | 文章时效 | 有发布日期 | 有直链 | 需要 |
|------|---------|-----------|--------|------|
| **微信读书搜索(本项目)** | ✅ 最新 | ✅ | ✅ | 微信扫码 |
| Exa (mcporter) | ❌ | ❌ | ✅ | API Key |
| 搜狗微信搜索 | ❌ ~2021 | ✅ | ✅ | 无 |

**唯一能同时拿到「最新文章 + 发布日期 + 直链」的方案。**

## 使用方式

通过 Agent 对话触发。在聊天窗口告诉 Agent 你要搜什么即可:

> "搜一下最近关于大模型的公众号文章"
> "微信搜索 OpenAI"

Agent 会自动调用本 Skill 完成搜索。

**如果微信读书还没登录**,Agent 会把登录二维码发到聊天窗口,微信扫码即可。登录后继续搜索,全程自动。

搜索完成后,你会收到:

```
关键词 公众号文章搜索

搜到 258 篇 → 提取 258 篇 → 252 篇有链接(成功率 98%)

🔥 Top 10:

1. [文章标题](http://mp.weixin.qq.com/s/...) — 2小时前
2. [文章标题](http://mp.weixin.qq.com/s/...) — 昨天
...
```

默认展示前 10 篇,完整数据保存在 `/tmp/urls.json`。

## 原理简述

微信读书搜索结果页面本身不暴露文章链接。点击文章卡片时页面通过 `window.open` 打开目标文章。本项目通过浏览器自动化拦截这个操作,批量获取所有文章的真实 `mp.weixin.qq.com` 链接。

## 依赖

- [agent-browser](https://github.com/vercel-labs/agent-browser) — 浏览器自动化控制

## 声明

- 本项目**仅搜索公众号文章并获取链接**,不抓取正文
- 需要微信扫码登录,session 过期后需重新扫码

_meta.json

{
  "ownerId": "kn7ay2vk3fst9dazwsrj83d4kn86ts13",
  "slug": "wechat-search-weread",
  "version": "1.0.3",
  "publishedAt": 1780981635794
}

references/api-limitations.md

# 微信读书官方 Agent API 限制

## 背景

微信读书提供了官方 Agent API(`POST https://i.weread.qq.com/api/agent/gateway`,需 API Key),声称通过 `/store/search` 的 `scope` 参数支持搜索公众号(scope=2)和文章(scope=4)。

## 实测结论

| scope | 名称 | 状态 | 说明 |
|-------|------|------|------|
| 0 | 全部 | ✅ | 搜书(电子书/有声书/书单等) |
| 10 | 电子书 | ✅ | 正常 |
| 12 | 全文 | ✅ | 搜书内正文,返回 `currentCount=0` |
| 2 | 公众号 | ❌ `-2041` | 不可用 |
| 4 | 文章 | ❌ `-2041` | 不可用 |

**公众号文章搜索(scope=2/4)在后端未对 Agent API Key 开放。** 浏览器方案(weread.qq.com 搜一搜 + CDP 提取)是当前唯一的公众号文章搜索途径。

## 测试时间

2026-05-17,API Key `wrk-FGVctlbTTPaWm7gmFFAi7gAA`,skill_version 1.0.3。

references/cdp-patterns.md

# CDP Interaction Patterns for WeChat Read Search

## CDP Endpoint Levels

### Browser level (`/json/version`)
- Good for: `Browser.getVersion`, getting initial WS URL for agent-browser
- **Cannot** receive: `Network.*`, `Page.windowOpen`, `Page.frameNavigated` events
- URL: `curl -s http://<WINDOWS_IP>:9223/json/version | jq -r .webSocketDebuggerUrl`

### Page level (`/json` list → page targets)
- **Required** for: all page events, Network interception, Runtime.evaluate
- URL: `curl -s http://<WINDOWS_IP>:9223/json | jq -r '.[] | select(.type=="page" and (.url | contains("search.weixin"))) | .webSocketDebuggerUrl'`

## Key CDP Commands

### Enable domains (MUST do first)
```json
{"id": 1, "method": "Page.enable"}
{"id": 2, "method": "Network.enable"}
```

### Mouse click (for triggering navigation)
WeChat search page requires real mouse events for navigation. JS `element.click()` won't work.

```json
// Get coordinates
{"id": 3, "method": "Runtime.evaluate", "params": {
    "expression": "document.querySelector('.search_list_item .article__title-text').getBoundingClientRect()"
}}
// Response: {x, y, width, height}

// Click
{"id": 4, "method": "Input.dispatchMouseEvent", "params": {
    "type": "mousePressed", "x": <cx>, "y": <cy>, "button": "left", "clickCount": 1
}}
{"id": 5, "method": "Input.dispatchMouseEvent", "params": {
    "type": "mouseReleased", "x": <cx>, "y": <cy>, "button": "left", "clickCount": 1
}}
```

### Catch article URL
After click, listen for:
```json
{"method": "Page.windowOpen", "params": {"url": "https://mp.weixin.qq.com/s?__biz=...&mid=...&idx=...&sn=..."}}
```

## Common Errors

### "Frame with the given frameId is not found"
- Happens when clicking iframe elements via agent-browser before iframe fully renders
- Fix: wait 3-6 seconds and retry

### "Debugger agent is not enabled"
- Happens when calling Debugger.* methods without `Debugger.enable`
- Usually unnecessary; just use Runtime.evaluate instead

### TimeoutError on ws.recv()
- CDP sends events asynchronously; not all messages are responses to your commands
- Use `asyncio.wait_for(ws.recv(), timeout=N)` in a loop
- Filter by checking `data.get('method')` for the event you want
Github ReposUpdated 12h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/kanikig/skills/wechat-search-weread",
      "sourceUrl": "https://clawhub.ai/kanikig/skills/wechat-search-weread",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T04:32:48.258Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-kanikig-wechat-search-weread/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kanikig-wechat-search-weread/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T04:32:48.258Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.7K downloads",
      "href": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceUrl": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T04:32:48.258Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "1.0.3",
      "href": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceUrl": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-06-09T05:07:15.794Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-kanikig-wechat-search-weread/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kanikig-wechat-search-weread/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 1.0.3",
      "description": "去浏览器绑定:前提一处说明,后续步骤不指定浏览器;Scroll事件统一用dispatchEvent解决",
      "href": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceUrl": "https://clawhub.ai/kanikig/wechat-search-weread",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-06-09T05:07:15.794Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to Wechat Search Weread and adjacent AI workflows.