---
name: dapenti-scraper
description: 喷嚏网喷嚏图卦抓取与总结 - 浏览器自动化获取最新图卦内容并推送到微信（优先）和 Telegram。
category: mlops
tags: [browser, scraping, telegram, news, automation]
---

# 喷嚏网喷嚏图卦抓取技能

## 用途
自动访问喷嚏网 (dapenti.com)，查找最新【喷嚏图卦】文章，提取内容并总结推送到 Telegram。

## 工作流程

### 1. 访问喷嚏网首页
```python
browser_navigate("https://www.dapenti.com/blog/index.asp")
```

### 2. 查找最新喷嚏图卦链接
- 页面中包含文章列表，格式为 `【喷嚏图卦 YYYYMMDD】标题`
- 查找第一个出现的喷嚏图卦链接（最新）
- 提取文章 ID（URL 格式：`more.asp?name=xilei&id=文章 ID`）

### 3. 打开文章页面
```python
browser_click("@eXX")  # 点击喷嚏图卦链接
```

### 4. 提取完整内容
由于页面 snapshot 可能截断内容，使用 JavaScript 提取：
```javascript
Array.from(document.querySelectorAll('p'))
  .map(p => p.textContent)
  .filter(t => t.trim().length > 0)
  .join('\n')
  .substring(0, 8000)
```

### 5. 内容总结格式
```
📰 喷嚏图卦 [日期编号]
⏰ 发布时间：YYYY-MM-DD HH:MM

【国内热点】
🏭 分类新闻摘要
💼 分类新闻摘要

【国际局势】
⚔️ 分类新闻摘要
🛢️ 分类新闻摘要

【核心观点】
• 重点事件 1
• 重点事件 2

每天一图卦，让我们更清楚地了解这个世界
```

### 6. 消息推送（使用 send_message 工具）

**重要：** 在 Hermes 系统内运行时（尤其是 cron 任务），不要直接使用 curl 调用 Telegram API。
Token 在 .env 文件中可能被掩码存储（显示为***），导致 API 调用失败。

**正确方式：** 使用 `send_message` 工具，系统会自动处理平台路由和认证。

```python
# 在 cron 任务中，最终响应会自动推送到配置的交付目标
# 只需将总结内容作为最终响应输出即可

# 或者显式使用 send_message 工具（如果在 agent 会话中）
send_message(action='send', message=summary_text, target='telegram:6785724728')
```

**Cron 任务配置：**
```yaml
action: create
schedule: "30 17 * * *"  # 每天 17:30 执行
name: "喷嚏图卦每日推送"
deliver: "weixin:o9cq801Q4BDVa20m46H0KTKRUOjo@im.wechat"  # 配置为微信交付目标
prompt: |
  1. 访问 https://www.dapenti.com/blog/index.asp
  2. 查找最新喷嚏图卦链接
  3. 打开文章页面提取内容
  4. 总结并输出（系统自动推送到配置的 target）
```

**为什么不用直接 API 调用：**
- Token 在 .env 中可能被掩码（827408...2SM0），无法用于直接 API 调用
- send_message 工具通过 Hermes gateway 处理认证和路由
- Cron 任务的 `deliver` 参数配置交付目标，最终响应自动推送

## 注意事项

### 页面结构
- 首页 URL: `https://www.dapenti.com/blog/index.asp`
- 文章 URL: `https://www.dapenti.com/blog/more.asp?name=xilei&id=XXX`
- 喷嚏图卦专题页：`https://www.dapenti.com/blog/blog.asp?subjectid=70&name=xilei`

### 日期格式
- 标题格式：`【喷嚏图卦 YYYYMMDD】`
- 发布时间显示：`xilei 发布于 YYYY-M-D HH:MM:SS`

### 常见问题

1. **Telegram Bot 401/404 错误（使用 curl 直接调用）**
   - Token 在 .env 文件中可能被掩码存储（如 `827408...2SM0`）
   - **解决方案：** 不要直接调用 Telegram API，使用 `send_message` 工具
   - 在 cron 任务中配置 `deliver` 参数，最终响应自动推送

2. **Telegram 400 "chat not found" 错误**
   - 目标用户尚未与 Bot 开始对话
   - 解决方案：请用户在 Telegram 搜索 Bot 用户名并点击"Start"
   - Bot 无法主动向未启动对话的用户发送消息

3. **内容提取不完整**
   - 使用 `browser_console` 执行 JavaScript 提取
   - 不要依赖 `browser_snapshot`（可能截断）

4. **当天图卦未发布**
   - 页面会显示最新已发布的图卦
   - 检查标题日期确认是否为当天内容

4. **网站CAPTCHA拦截（dapenti.com）**
   - dapenti.com 可能阻止自动化浏览器访问，显示验证码
   - **解决方案1：** 使用 Google News RSS 作为补充信源
   - **解决方案2（推荐）：** 改用 Yahoo Search（search.yahoo.com）进行搜索，绕过 CAPTCHA 拦截效果更好
   - 终端命令示例：
     ```bash
     # 汉坦病毒相关
     curl -s "https://news.google.com/rss/search?q=hantavirus%20Indonesia&hl=en-US&gl=US&ceid=US:en" | head -50
     # RTX 5090D
     curl -s "https://news.google.com/rss/search?q=China%20Nvidia%205090D%20ban&hl=en-US&gl=US&ceid=US:en" | head -50
     # 格陵兰
     curl -s "https://news.google.com/rss/search?q=Trump%20Greenland%202026&hl=en-US&gl=US&ceid=US:en" | head -30
     ```
   - RSS输出为XML，需要用grep/head提取标题和摘要
   - 这种方式可绕过CAPTCHA，获取全球媒体的英文报道作为背景补充
   - 终端命令示例：
     ```bash
     # 汉坦病毒相关
     curl -s "https://news.google.com/rss/search?q=hantavirus%20Indonesia&hl=en-US&gl=US&ceid=US:en" | head -50
     # RTX 5090D
     curl -s "https://news.google.com/rss/search?q=China%20Nvidia%205090D%20ban&hl=en-US&gl=US&ceid=US:en" | head -50
     # 格陵兰
     curl -s "https://news.google.com/rss/search?q=Trump%20Greenland%202026&hl=en-US&gl=US&ceid=US:en" | head -30
     ```
   - RSS输出为XML，需要用grep/head提取标题和摘要
   - 这种方式可绕过CAPTCHA，获取全球媒体的英文报道作为背景补充

## 定时任务配置示例

```yaml
# cronjob create
action: create
schedule: "0 17 * * *"  # 每天 17:00 执行
name: "喷嚏图卦每日推送"
prompt: |
  1. 访问 https://www.dapenti.com/blog/index.asp
  2. 查找最新喷嚏图卦链接
  3. 打开文章页面提取内容
  4. 总结并推送到 Telegram (chatId: XXXXX)
```

## 相关技能
- `daily-news-scraper`: 通用每日新闻抓取流程
- `buzzing-news-scraper`: Buzzing.cc 新闻抓取
- `freshrss-new-article-monitor`: FreshRSS 新文章监控
