用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/QianJinGuo/wiki --skill web-scraper-comparison命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | web-scraper-comparison |
| description | 实证对比 Jina Reader、Playwright、Obscura 在文章抓取场景下的表现。结论:Jina 最适合 cron 任务,Obscura 尚未成熟。 |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| metadata | {"hermes":{"tags":["web-scraping","comparison","jina","playwright","obscura"],"category":"research"}} |
| 方案 | 速度 | 内容完整度 | 格式 | 稳定性 | 适用场景 |
|---|---|---|---|---|---|
| Jina Reader | 2-6s | ✓ 完整 | Markdown | 高 | cron 主力 |
| AWS RSS Feed | 快 | ✓✓ 44KB+ | HTML | 极高 | AWS Blog(最优) |
| we-mp-rss SQLite | 即时 | ✓✓ 150KB+ | HTML | 100% | WeChat(已订阅号) |
| Playwright | 7-15s | ~80% 含噪声 | Text | 中 | 需登录/交互 |
| Playwright Stealth (headless=True + init_script) | 10-15s | ✓ 完整 | Text | 中-高 | 重 bot 站 + headless/cron(无需 profile/API key) |
| Obscura | 不稳定 | 频繁失败/空 | - | 低 | 不推荐生产用 |
| TinyFish | 云端 | 中等 | 中 | 中 | WeChat 最后兜底 |
--dump text 返回空<meta id="zh-zse-ck"> JS challengebrowser_navigate (Hermes headless Chromium, 默认 desktop UA): 同 zse-ck challenge — navigator.webdriver === true 是已知 bot 签名/api/v4/articles/<id>): code 10003 "请升级客户端后重试" — client-version gatedoia.zhihu.com/...): code 40362 "请求存在异常" — IP-flaggedzhuanlan.zhihu.com/p/2001069051741496397 (LastWhisper "Thinking in Context" Codex 上下文工程) 实测成功content-fetching/references/playwright-stealth-headless.mdTINYFISH_API_KEY)关键发现 (2026-06-10): Playwright Profile 用 iPhone 14 Pro UA + 持久化 profile 是首选 last-resort for heavy Chinese bot-protected sites (Zhihu/CSDN/小红书)。机制:
Object.defineProperty(navigator, 'webdriver') JS 补丁不够 — 仍会被 TLS fingerprint 拦截2026-06-10 修正 (重要): 上一条"已知失败模式"的判断仅适用于需要 TLS fingerprint 检查的少数场景。对 Zhihu zse-ck 而言(2026-06-10 实测),所有 6 个 JS 可见信号都打补丁后即可 bypass(headless=True + desktop Chrome UA)。TLS fingerprint 检查并非所有反爬的通用前置。详见 content-fetching/references/playwright-stealth-headless.md 的 6-signal patch 清单。
详见: content-fetching/references/zhihu-and-cnsite-fetcher.md (Layer 7 完整机制 + 决策流程) + content-fetching/references/playwright-stealth-headless.md (Layer 8 通用 pattern,可复用于 CSDN/小红书等)
cannot execute binary file),macOS x86_64 binary segfault,aarch64 版本可运行但仍有稳定性问题--dump text/markdown 返回空或 1 chardocument.body.innerText 包含 Skip to content/sidebar 等导航噪声,需要额外清洗无需任何工具,直接用官方 RSS:
https://aws.amazon.com/blogs/machine-learning/feed/
<content:encoded> 包含完整 HTML (~44KB/篇),远超 Jina 的 21KB其他 AWS Blog 方案对比:
| 方案 | 内容 | 速度 | 可靠性 |
|---|---|---|---|
| RSS Feed ✅ | 44KB+ 完整 HTML | 快 | 极高 |
| Jina Reader | 21KB | 6s | 一般 |
| Playwright | 含噪声 | 8s | 一般 |
| Obscura | 空 | - | 失败 |
通用 RSS 发现模式:大型技术博客(AWS、Microsoft、Google 等)通常都有 /feed/ 或 ?format=rss 的原生 RSS,优先用 RSS 而非浏览器抓取。
we-mp-rss Docker 容器 (localhost:8001) 已在本地缓存 659 篇带完整内容的微信文章,存在 SQLite DB。
DB 路径:docker cp we-mp-rss:/app/data/db.db /tmp/we-mp-rss.db
表结构:
# 连接 DB
conn = sqlite3.connect('/tmp/we-mp-rss.db')
# articles 表关键字段
# - url: 原文 URL
# - content: 纯文本内容
# - content_html: 完整 HTML 内容
# - has_content: 1 表示有全文
# - title, mp_id, publish_time 等元数据
# 按 URL 查找
cursor.execute("SELECT content_html FROM articles WHERE url = ?", (article_url,))
row = cursor.fetchone()
if row:
html_content = row[0] # 150KB+ 完整 HTML
已订阅的号(20个):阿里云开发者、机器之心、AGI Hunt、架构师、量子位、新智元、腾讯技术工程、AI寒武纪、技术极简主义、腾讯研究院等。
RSS 接口:http://localhost:8001/rss/{mp_id} 提供单个订阅号完整内容。
cron 任务中的用法:
Jina 失败(WeChat CAPTCHA)
→ 查询 we-mp-rss SQLite by URL
→ 缓存命中 → 用 content_html 入库(100% 成功)
→ 缓存未命中 → TinyFish 兜底
第1层: Jina Reader (r.jina.ai) → 覆盖 80%+,速度快,内容干净
失败 →
第2层: 目标平台专用方案
├─ AWS Blog → 原生 RSS Feed
├─ WeChat(已订阅) → we-mp-rss SQLite 本地缓存
└─ Zhihu (zhuanlan) → **Playwright Profile + iPhone 14 Pro UA** (首选,零成本)
OR **Playwright Stealth (headless=True + init_script)** (headless/cron)
失败 →
第3层: Playwright Profile (其他需登录/反爬重的中文站)
失败 →
第3.5层: Playwright Stealth (headless=True + init_script) — 2026-06-10
→ 重 bot 站通用 pattern,适用于 cron/SSH,无需 profile/API key
→ 6-signal patch 详见 content-fetching/references/playwright-stealth-headless.md
失败 →
第4层: TinyFish 兜底(需 TINYFISH_API_KEY)
失败 →
标记失败 + 人工介入
原则:优先用平台原生方案(RSS/本地缓存),其次才是通用抓取工具。重 bot 中文站(Zhihu/CSDN/小红书)现已统一收敛到两个 Playwright 变体:(a) Profile + iPhone UA for GUI/local Mac, (b) headless + init_script stealth for cron/SSH/headless Linux。两种都能绕过 zse-ck,选择取决于运行环境(GUI 可用性 + 是否需要持久登录态)。
headless: false + iPhone 14 Pro UA + 持久化 profile,详见 content-fetching/references/zhihu-and-cnsite-fetcher.md Layer 7当前:不推荐生产使用。等待版本成熟后重新评估。
基于 SOC 职业分类