# Latte-news-fetcher

> 新闻获取工具。支持获取新闻列表、绕过付费墙获取全文。 使用 archive.today、smry.ai、12ft.io 等公开服务访问付费内容。 触发词：新闻、今日新闻、付费墙、文章、阅读。

- Skill: `dvcrn/latte-news-fetcher` (Agent Skill, multi-file: 9 files)
- Install (CLI): `npx skillmds@latest add dvcrn/latte-news-fetcher`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/latte-news-fetcher/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/latte-news-fetcher

---


# Latte News Fetcher - 新闻获取工具 ☕

获取新闻列表、绕过付费墙、深入阅读完整内容。

---

## 🚀 核心流程

### 首次使用：初始化偏好

**检查配置文件** `CONFIG/news-preferences.md`（workspace 根目录）

如果用户偏好为空，执行初始化：

```
询问用户：
"你想要看哪些方面的新闻？可以选择以下类别，也可以告诉我你常看的网站："

🌍 国际时事 - BBC、Reuters、Al Jazeera
🇨🇳 国内要闻 - 人民网、新华网、澎湃新闻
💰 财经金融 - 财联社、Bloomberg、华尔街见闻
💻 科技互联网 - 36氪、The Verge、虎嗅
⚽ 体育娱乐 - 虎扑、ESPN、新浪体育
📊 商业市场 - 界面、财新、第一财经

你也可以直接告诉我你想关注的网站。"
```

**保存偏好** → 写入 `CONFIG/news-preferences.md`（workspace 根目录）

---

### 日常使用：获取今日新闻

**触发场景（两种）：**

1. **通用请求**：用户问"今天有什么新闻"、"看看新闻"等
   - → 读取用户偏好配置，获取偏好类别对应的网站

2. **指定网站**：用户问"看看华尔街日报今天有什么新闻"、"BBC今天新闻"等
   - → 直接访问用户指定的网站，跳过偏好检查

---

### 📰 获取新闻首页（关键！）

⚠️ **重要：主流媒体网站通常会阻止简单的 fetch 请求，必须使用正确的工具**

#### 工具选择优先级

| 优先级 | 工具 | 适用场景 | 说明 |
|--------|------|----------|------|
| 🔴 **首选** | `browser` | WSJ、Bloomberg、NYT、FT 等主流媒体 | 能处理 JS 渲染和反爬机制 |
| 🟡 备选 | `web_fetch` | BBC、Reuters、AP 等开放网站 | 轻量级，速度快 |
| 🟢 兜底 | Tavily 搜索 | 首页获取失败时 | 搜索 `site:xxx.com` 获取今日新闻 |

#### 首页获取流程

```
1. browser 打开网站首页
   browser action=open url="https://cn.wsj.com" profile="openclaw"
   
2. 等待页面加载（3-5秒）
   browser action=act kind=wait timeMs=5000
   
3. 获取页面快照
   browser action=snapshot
   
4. 从快照中提取新闻标题和链接

5. 关闭浏览器
   browser action=close
```

#### 首页获取失败时的备选方案

如果 browser 访问失败，按以下顺序尝试：

```
1. 使用 Tavily 搜索今日新闻
   搜索: "site:cn.wsj.com 2026-03-06" 或 "华尔街日报 今日"
   
2. 尝试 RSS 订阅源（如果有）
   WSJ RSS: https://feeds.a.dj.com/rss/RSSWSJD.xml
   
3. 使用 web_fetch 尝试移动版
   web_fetch url="https://m.cn.wsj.com"
   
4. 诚实告知用户，提供替代网站
```

---

### 输出格式（纯文本 Markdown）

⚠️ **重要：使用纯文本 Markdown 格式，不使用飞书交互式卡片！**

使用 `message` 工具发送纯文本消息，格式如下：

```markdown
**[来源名称] 今日新闻** (YYYY-MM-DD)

---

**🔥 热门文章**

1. [标题](原文链接) | 类别
   简短摘要（1-2行，精炼概括核心事件）

2. [标题](原文链接) | 类别
   简短摘要

3. [标题](原文链接) | 类别
   简短摘要

---

**🌍 国际**

- [标题](原文链接) | 摘要

**🇨🇳 中国**

- [标题](原文链接) | 摘要

**🇺🇸 美国政治**

- [标题](原文链接) | 摘要

**💰 财经金融**

- [标题](原文链接) | 摘要

**💻 科技**

- [标题](原文链接) | 摘要

**🏢 商业**

- [标题](原文链接) | 摘要

**🎨 有趣/生活**

- [标题](原文链接) | 摘要

---

对哪条新闻感兴趣想深入了解？我可以用绕过工具帮你获取全文。
```

**格式要求：**
- **使用纯文本 Markdown**，不使用飞书交互式卡片（interactive card）
- 主标题使用 `**粗体**`，日期用括号
- 各分类板块使用 `---` 分隔线
- 分类标题使用 `**粗体**` + 图标：🌍 国际、🇨🇳 中国、🇺🇸 美国政治、💰 财经金融、💻 科技、🏢 商业、🎨 有趣/生活
- 热门文章必须有编号、标题、类别标签和1-2行摘要
- 标题使用 Markdown 超链接格式 `[标题](链接)`
- 摘要精炼，确保信息密度与可读性平衡
- 结尾提供深入了解的提示

**实现方式：**
```javascript
message(
  action: "send",
  channel: "feishu",
  message: "**华尔街日报中文版 今日新闻** (2026-03-06)\n\n---\n\n**🔥 热门文章**\n\n1. [标题](链接) | 类别\n   摘要内容\n\n..."
)
```

---

## 📋 核心类别与知名网站

| 类别 | 首选网站（Top 3） | 备选网站 |
|------|------------------|----------|
| 🌍 **国际时事** | BBC、Reuters、Al Jazeera | AP News、DW、NHK World |
| 🇨🇳 **国内要闻** | 人民网、新华网、澎湃新闻 | 中国新闻网、环球网、新京报 |
| 💰 **财经金融** | 财联社、Bloomberg、华尔街见闻 | Reuters财经、第一财经、财新 |
| 💻 **科技互联网** | 36氪、The Verge、虎嗅 | TechCrunch、Ars Technica、钛媒体 |
| ⚽ **体育娱乐** | 虎扑、ESPN、新浪体育 | BBC Sport、懂球帝、直播吧 |
| 📊 **商业市场** | 界面、财新、第一财经 | 21世纪经济报道、FT中文网、日经中文网 |

**网站与工具对应表：**

| 网站 | 首页获取工具 | 原因 |
|------|-------------|------|
| WSJ/Bloomberg/NYT/FT | `browser` | 反爬机制强，需要 JS 渲染 |
| BBC/Reuters/AP | `web_fetch` 或 `browser` | 相对开放，两者皆可 |
| 国内媒体（澎湃/财新等） | `browser` | 部分有反爬 |
| 科技媒体（36氪/The Verge） | `browser` | JS 渲染较多 |

---

## 🔍 深入新闻：获取全文

**触发：用户说"详细了解 XX"、"展开第 X 条"等**

### 获取优先级

```
1. web_fetch 直接获取（免费信源）
      ↓ 失败
2. browser 访问页面（无付费墙）
      ↓ 失败（付费墙）
3. archive.today 归档版本（首选绕过方案）
      ↓ 失败（无存档）
4. RemovePaywall → archive.is
      ↓ 失败
5. 其他绕过工具（smry.ai / 12ft.io）
      ↓ 失败
6. 搜索替代信源（BBC/Reuters/AP）
      ↓ 失败
7. 诚实告知 + 提供已获取的摘要
```

### 绕过付费墙工具

| 优先级 | 工具 | 用法 | 适用场景 |
|--------|------|------|----------|
| ⭐⭐⭐ | **archive.today** | `https://archive.today/{链接}` | **首选！付费墙通用方案** |
| ⭐⭐ | **smry.ai** | `https://smry.ai/{链接}` | 带总结，部分站点有效 |
| ⭐⭐ | **RemovePaywall** | `https://www.removepaywall.com/search?url={链接}` | 华尔街日报备选 |
| ⭐ | **12ft.io** | `https://12ft.io/{链接}` | 博客、Medium |
| ⭐ | **r.jina.ai** | `https://r.jina.ai/http://{链接}` | 纯文本提取 |

---

### 🗞️ 华尔街日报 (WSJ) 专用绕过方法

#### 方法一：archive.today 直接访问（推荐）

⚠️ **关键步骤：archive.today 会先显示存档列表页，需要点击具体存档链接才能进入内容页**

**完整操作流程：**

```
步骤1: 尝试直接获取（通常失败）
web_fetch url="https://cn.wsj.com/articles/xxx"

步骤2: 打开 archive.today
browser action=open url="https://archive.today/https://cn.wsj.com/articles/xxx"
browser action=act kind=wait timeMs=8000

步骤3: 获取快照，检查页面状态
browser action=snapshot

步骤4: 判断页面类型
├── 如果显示"存档列表"（有多个存档时间和链接）
│   → 点击最新的存档链接
│   → browser action=act kind=click ref="存档链接"
│   → 等待跳转后获取内容
│
└── 如果直接显示文章内容
    → 直接提取内容

步骤5: 从快照中提取文章内容
（注意：archive.today 页面顶部有工具栏，内容在下方）

步骤6: 关闭浏览器
browser action=close
```

**实际代码示例：**
```javascript
// 步骤1: 尝试直接获取
web_fetch url="https://cn.wsj.com/articles/英伟达将重心转离对华销售芯片-e85f9673"
// → 失败

// 步骤2: 打开 archive.today
browser action=open url="https://archive.today/https://cn.wsj.com/articles/..."
browser action=act kind=wait timeMs=8000

// 步骤3: 获取快照
browser action=snapshot
// 检查结果：发现是存档列表页

// 步骤4: 点击存档链接
// 在快照中找到类似这样的链接：
// link "英伟达将重心转离对华销售芯片 - WSJ" [ref=e43]
browser action=act kind=click ref="e43"

// 步骤5: 等待加载后获取内容
browser action=act kind=wait timeMs=5000
browser action=snapshot

// 步骤6: 提取内容并整理输出
```

#### 时效性提示

⏰ **存档可能不是实时的**：
- archive.today 的存档由用户提交，可能有数小时延迟
- 如果需要最新内容而存档过旧，尝试：
  1. RemovePaywall 方案
  2. 搜索替代信源
  3. 等待新存档

#### 方法二：RemovePaywall（备选）

如果 archive.today 没有存档，使用此方法：

```
1. browser action=open url="https://www.removepaywall.com/search?url={WSJ链接}"
2. browser action=act kind=wait timeMs=5000
3. browser action=act kind=click ref="option2或option3按钮"
4. 等待跳转到 archive.is 页面
5. browser action=snapshot 获取内容
```

---

### 📊 其他付费网站绕过方案

| 网站 | 推荐方法 | 备注 |
|------|----------|------|
| 华尔街日报 (WSJ) | archive.today | 优先使用，需点击存档链接 |
| Bloomberg | archive.today | 同上 |
| NYT | archive.today | 同上 |
| Medium | 12ft.io / r.jina.ai | 效果较好 |
| FT中文网 | archive.today | 同上 |

### 搜索替代信源

**使用 Tavily API 搜索同一事件的免费报道：**

```bash
curl -s --request POST \
  --url https://api.tavily.com/search \
  --header "Authorization: Bearer $TAVILY_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
    "query": "China 2026 GDP growth target 4.5% 5% economic",
    "max_results": 5,
    "search_depth": "basic"
  }'
```

**替代优先级：**
1. BBC / Reuters / AP（国际）
2. 官方来源（如中国国务院新闻办 SCIO）
3. 国内免费媒体（国内）
4. 社交媒体（Twitter/X 记者账号）

**综合多信源：**
当无法获取原文全文时，从 Tavily 搜索结果中选择 2-3 个信源，综合整理后提供给用户，并注明来源链接。

---

### 需要会员登录的网站处理

⚠️ **特殊类型**：部分网站（如日经中文网）不是付费墙，而是需要**免费会员登录**才能看全文

**处理流程：**

```
1. 尝试 smry.ai 获取
   ├── 成功但内容截断 → 说明需要登录
   └── 失败 → 继续下一步

2. 使用 Tavily 搜索替代信源（推荐）
   - 搜索同一事件的其他媒体报道
   - 综合多信源整理

3. 请求用户登录（备选）
   - 询问用户是否有会员账号
   - 如有，请用户在 Chrome 中登录
   - 使用 browser profile="chrome" 访问
   - 注意：需要用户先点击 OpenClaw Browser Relay 扩展启用
```

**用户登录操作提示：**
```
"你有日经中文网会员账号吗？

如果有：
1. 在 Chrome 浏览器中打开 https://cn.nikkei.com/user/login.html 并登录
2. 登录成功后告诉我
3. 我会通过你的浏览器访问文章全文

或者，我可以用 Tavily 搜索其他媒体对同一事件的报道。"
```

---

## 🛠️ 工具选择速查表

### 获取新闻列表

| 场景 | 推荐工具 | 原因 |
|------|----------|------|
| 主流媒体首页（WSJ/Bloomberg/NYT） | `browser` | 反爬机制强 |
| 开放媒体（BBC/Reuters） | `web_fetch` 或 `browser` | 两者皆可 |
| 首页获取失败 | Tavily 搜索 `site:xxx.com` | 兜底方案 |

### 获取文章全文

| 场景 | 工具 |
|------|------|
| 免费信源 | `web_fetch` 直接获取 |
| 付费信源 | `browser` + archive.today |
| 复杂页面 | `browser` + `snapshot` |

---

## 📂 相关文件

- [用户偏好配置](CONFIG/news-preferences.md) - 存储用户的新闻偏好（workspace 根目录）
- [新闻网站资源](references/news-sources.md) - 完整的网站列表
- [付费墙难度矩阵](references/paywall-matrix.md) - 各网站付费墙分析
- [绕过工具对比](references/bypass-tools.md) - 工具效果对比
- [进阶技巧](references/advanced-techniques.md) - 浏览器技巧等

---

## ⚠️ 注意事项

1. **链接格式** - 新闻列表必须使用 `[标题](原文链接)` 格式
2. **热门新闻** - 必须是当天最热门、关注度最高的，不限类别
3. **尊重版权** - 仅供个人学习研究
4. **优先免费** - BBC/Reuters/AP 是第一选择
5. **诚实透明** - 无法获取时明确告知 + 提供替代
6. **输出格式** - 始终使用纯文本 Markdown，不用飞书交互式卡片
7. **存档时效** - archive.today 存档可能有延迟，注意检查存档时间

---

## 🔄 流程图

```
用户请求新闻
        │
        ├─── 用户指定网站？
        │         │
        │        Yes ──→ 直接访问指定网站
        │         │
        │         No
        │         │
        │         ▼
        │    检查用户偏好配置
        │         │
        │    ┌────┴────┐
        │    │ 有偏好？ │
        │    └────┬────┘
        │     No  │  Yes
        │    ┌────┴────┐
        │    ▼         ▼
        │  询问用户   直接获取
        │  设置偏好   偏好类别新闻
        │    │         │
        │    └────┬────┘
        │         │
        └─────────┤
                  ▼
        ┌───────────────────┐
        │ browser 打开首页   │
        │ （主流媒体首选）    │
        └───────────────────┘
                  │
           ┌──────┴──────┐
           │   成功？     │
           └──────┬──────┘
            Yes   │   No
           ┌──────┴──────┐
           ▼             ▼
      提取新闻      尝试备选方案
      标题链接      (Tavily/RSS/移动版)
           │             │
           │      ┌──────┴──────┐
           │      │   成功？     │
           │      └──────┬──────┘
           │        Yes  │   No
           │       ┌─────┴─────┐
           │       ▼           ▼
           │   提取新闻    告知用户
           │   标题链接    提供替代
           │       │           │
           └───────┴───────────┘
                   │
                   ▼
        ┌───────────────────┐
        │ 整理输出：         │
        │ 🔥 最热门 x3       │
        │ + 分类新闻         │
        │ （纯文本Markdown）  │
        └───────────────────┘
                   │
                   ▼
            用户选择深入了解
                   │
                   ▼
        ┌───────────────────┐
        │ 获取全文 + 总结    │
        │ web_fetch          │
        │ ↓ 失败             │
        │ browser            │
        │ ↓ 付费墙           │
        │ archive.today      │
        │ （注意点击存档链接） │
        │ ↓ 失败             │
        │ 搜索替代信源        │
        └───────────────────┘
```

---

## 📝 更新日志

- **2026-03-06 (v2)**: 
  - 新增"需要会员登录的网站处理"流程（如日经中文网）
  - 新增 Tavily API 完整使用示例（curl 命令）
  - 新增"综合多信源"策略说明
  - 替代信源优先级新增"官方来源"
  - 流程图增加"用户登录"分支提示

- **2026-03-06 (v1)**: 
  - 首页获取改用 browser 为首选（主流媒体反爬机制）
  - archive.today 流程补充"点击存档链接"步骤
  - 新增"用户指定网站"分支
  - 新增首页获取失败的备选方案
  - 添加存档时效性提示
  - 更新流程图

---

_此技能持续优化中。最后更新: 2026-03-06_

