Przejdź do treści
Biblioteka skilli
Dane i analityka · Konwersja i formaty

news-extractor

/news-extractor

Wyodrębnia treść z 12 platform, między innymi WeChat, Toutiao, BBC, CNN, Twitter/X, Lenny's Newsletter, Naver Blog i Quora, do formatu JSON lub Markdown.

Repozytorium
newscrawler ↗
Licencja
GPL-3.0
Ostatnia zmiana repozytorium
08.08.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
25
Skrypty
21
Komentarze HTML
0
Adresy URL w SKILL.md
18
Przestarzałość

Brak sygnałów. Repozytorium zmienione 08.08.2026, bez odwołań do wycofanych modeli i API.

Licencja

GPL-3.0, otwarta.

Co sprawdzić przed instalacją
  • 21 skryptów w paczce. Przejrzyj je przed instalacją, bo Claude może je uruchomić.

Skrypty: scripts/crawlers/__init__.py, scripts/crawlers/base.py, scripts/crawlers/bbc.py, scripts/crawlers/cnn.py, scripts/crawlers/detik.py, scripts/crawlers/fetchers.py, scripts/crawlers/lenny.py, scripts/crawlers/naver.py, scripts/crawlers/netease.py, scripts/crawlers/quora.py, scripts/crawlers/sohu.py, scripts/crawlers/tencent.py, scripts/crawlers/toutiao.py, scripts/crawlers/twitter.py, scripts/crawle

Co robi i kiedy

Wyodrębnia treść z 12 platform, między innymi WeChat, Toutiao, BBC, CNN, Twitter/X, Lenny's Newsletter, Naver Blog i Quora, do formatu JSON lub Markdown.

Oryginalny opis (EN)

新闻站点内容提取。支持 12 个平台:微信公众号、今日头条、网易新闻、搜狐新闻、腾讯新闻、BBC News、CNN News、Twitter/X、Lenny's Newsletter、Naver Blog、Detik News、Quora。当用户需要提取新闻内容、抓取公众号文章、爬取新闻、或获取新闻JSON/Markdown时激活。

Jak działa

  1. 支持平台 (12)
  2. 依赖安装
  3. 使用方式
  4. 工作流程
  5. 输出格式
  6. 使用示例
  7. 错误处理
  8. 注意事项
  9. 目录结构
  10. 参考
Sekcje z nagłówków SKILL.md, w oryginale · 228 linii, 638 słów
Podgląd SKILL.md
---
name: news-extractor
description: 新闻站点内容提取。支持 12 个平台:微信公众号、今日头条、网易新闻、搜狐新闻、腾讯新闻、BBC News、CNN News、Twitter/X、Lenny's Newsletter、Naver Blog、Detik News、Quora。当用户需要提取新闻内容、抓取公众号文章、爬取新闻、或获取新闻JSON/Markdown时激活。
license: GPL-3.0
---

# News Extractor Skill

从主流新闻平台提取文章内容,输出 JSON 和 Markdown 格式。

**标准兼容、独立可迁移**:本目录遵循 Agent Skills 规范,包含完整的 `SKILL.md`、脚本与依赖,不依赖 NewsCrawler 的其他模块。通过兼容的 Skills 安装器安装后,运行一次 `uv sync` 即可使用。

运行环境需要 Python 3.9+、`uv` 和目标站点的网络访问。

## 支持平台 (12)

### 中文平台

| 平台 | ID | URL 示例 |
|------|-----|----------|
| 微信公众号 | wechat | `https://mp.weixin.qq.com/s/xxxxx` |
| 今日头条 | toutiao | `https://www.toutiao.com/article/123456/` |
| 网易新闻 | netease | `https://www.163.com/news/article/ABC123.html` |
| 搜狐新闻 | sohu | `https://www.sohu.com/a/123456_789` |
| 腾讯新闻 | tencent | `https://news.qq.com/rain/a/20251016A07W8J00` |

### 国际平台

| 平台 | ID | URL 示例 |
|------|-----|----------|
| BBC News | bbc | `https://www.bbc.com/news/articles/c797qlx93j0o` |
| CNN News | cnn | `https://edition.cnn.com/2025/10/27/uk/article-slug` |
| Twitter/X | twitter | `https://x.com/user/status/123456789` |
| Lenny's Newsletter | lenny | `https://www.lennysnewsletter.com/p/article-slug` |
| Naver Blog | naver | `https://blog.naver.com/username/123456` |
| Detik News | detik | `https://news.detik.com/internasional/d-123456/slug` |
| Quora | quora | `https://www.quora.com/question/answers/123456` |

## 依赖安装

本 skill 使用 uv 管理依赖。首次使用前需要安装:

```bash
cd <Agent Skills 目录>/news-extractor
uv sync
```

**重要**: 所有脚本必须使用 `uv run` 执行,不要直接用 `python` 运行。

### 依赖列表

| 包名 | 用途 |
|------|------|
| pydantic | 数据模型验证 |
| requests | HTTP 请求 |
| curl_cffi | 浏览器模拟抓取 |
| tenacity | 重试机制 |
| parsel | HTML/XPath 解析 |
| demjson3 | 非标准 JSON 解析 |

## 使用方式

### 基本用法

```bash
# 以下命令均在 news-extractor Skill 目录内执行

# 提取新闻,自动检测平台,输出 JSON + Markdown
uv run scripts/extract_news.py "URL"

# 指定输出目录
uv run scripts/extract_news.py "URL" --output ./output

# 仅输出 JSON
uv run scripts/extract_news.py "URL" --format json

# 仅输出 Markdown
uv run scripts/extract_news.py "URL" --format markdown

# Twitter 受保护推文 (需要 Cookie)
uv run scripts/extract_news.py "URL" --cookie "auth_token=xxx; ct0=yyy"

# 列出支持的平台
uv run scripts/extract_news.py --list-platforms
```

### 输出文件

脚本默认输出两种格式到指定目录(默认 `./output`):
- `{news_id}.json` - 结构化 JSON 数据
- `{news_id}.md` - Markdown 格式文章

## 工作流程

1. **接收 URL** - 用户提供新闻链接
2. **平台检测** - 自动识别平台类型
3. **内容提取** - 调用对应爬虫获取并解析内容
4. **格式转换** - 生成 JSON 和 Markdown
5. **输出文件** - 保存到指定目录

## 输出格式

### JSON 结构

```json
{
  "title": "文章标题",
  "news_url": "原始链接",
  "news_id": "文章ID",
  "meta_info": {
    "author_name": "作者/来源",
    "author_url": "",
    "publish_time": "2024-01-01 12:00"
  },
  "contents": [
    {"type": "text", "content": "段落文本", "desc": ""},
    {"type": "image", "content": "https://...", "desc": ""},
    {"type": "video", "content": "https://...", "desc": ""}
  ],
  "texts": ["段落1", "段落2"],
  "images": ["图片URL1", "图片URL2"],
  "videos": []
}
```

### Markdown 结构

```markdown
# 文章标题

## 文章信息
**作者**: xxx
**发布时间**: 2024-01-01 12:00
**原文链接**: [链接](URL)

---

## 正文内容

段落内容...

![图片](URL)

---

## 媒体资源
### 图片 (N)
1. URL1
2. URL2
```

## 使用示例

### 提取微信公众号文章

```bash
uv run scripts/extract_news.py \
  "https://mp.weixin.qq.com/s/ebMzDPu2zMT_mRgYgtL6eQ"
```

### 提取 BBC 新闻

```bash
uv run scripts/extract_news.py \
  "https://www.bbc.com/news/articles/c797qlx93j0o"
```

### 提取 Twitter 推文

```bash
# 公开推文 (无需认证)
uv run scripts/extract_news.py \
  "https://x.com/BarackObama/status/896523232098078720"

# 受保护推文 (需要 Cookie)
uv run scripts/extract_news.py \
  "https://x.com/user/status/123456" --cookie "auth_token=xxx; ct0=yyy"
```

## 错误处理

| 错误类型 | 说明 | 解决方案 |
|----------|------|----------|
| `无法识别该平台` | URL 不匹配任何支持的平台 | 检查 URL 是否正确 |
| `平台不支持` | 非支持的站点 | 本 Skill 仅支持列出的 12 个平台 |
| `提取失败` | 网络错误或页面结构变化 | 重试或检查 URL 有效性 |
| `认证失败` | Twitter Cookie 无效 | 重新获取 Cookie |

## 注意事项

- 仅用于教育和研究目的
- 不要进行大规模爬取
- 尊重目标网站的 robots.txt 和服务条款
- 微信公众号可能需要有效的 Cookie(当前默认配置通常可用)
- Twitter 公开推文无需认证,受保护推文需要 Cookie

## 目录结构

```
news-extractor/
├── SKILL.md                      # [必需] Skill 定义文件
├── pyproject.toml                # 依赖管理
├── references/
│   └── platform-patterns.md      # 平台 URL 模式说明
└── scripts/
    ├── extract_news.py           # CLI 入口脚本
    ├── models.py                 # 数据模型
    ├── detector.py               # 平台检测
    ├── formatter.py              # Markdown 格式化
    └── crawlers/                 # 爬虫模块
        ├── __init__.py
        ├── base.py               # BaseNewsCrawler 基类
        ├── fetchers.py           # HTTP 获取策略
        ├── wechat.py             # 微信公众号
        ├── toutiao.py            # 今日头条
        ├── netease.py            # 网易新闻
        ├── sohu.py               # 搜狐新闻
        ├── tencent.py            # 腾讯新闻
        ├── bbc.py                # BBC News
        ├── cnn.py                # CNN News
        ├── twitter.py            # Twitter/X
        ├── twitter_client.py     # Twitter API 客户端
        ├── twitter_types.py      # Twitter 数据类型
        ├── lenny.py              # Lenny's Newsletter
        ├── naver.py              # Naver Blog
        ├── detik.py              # Detik News
        └── quora.py              # Quora
```

## 参考

- [平台 URL 模式说明](references/platform-patterns.md)
Pliki w paczce (25)
  • SKILL.md 7 KB
  • pyproject.toml 1 KB
  • uv.lock 140 KB
  • references/platform-patterns.md 5 KB
  • scripts/detector.py 2 KB
  • scripts/extract_news.py 7 KB
  • scripts/formatter.py 2 KB
  • scripts/models.py 3 KB
  • scripts/crawlers/__init__.py 1 KB
  • scripts/crawlers/base.py 5 KB
  • scripts/crawlers/bbc.py 6 KB
  • scripts/crawlers/cnn.py 4 KB
  • scripts/crawlers/detik.py 5 KB
  • scripts/crawlers/fetchers.py 3 KB
  • scripts/crawlers/lenny.py 8 KB
  • scripts/crawlers/naver.py 8 KB
  • scripts/crawlers/netease.py 4 KB
  • scripts/crawlers/quora.py 6 KB
  • scripts/crawlers/sohu.py 6 KB
  • scripts/crawlers/tencent.py 4 KB
  • scripts/crawlers/toutiao.py 5 KB
  • scripts/crawlers/twitter.py 6 KB
  • scripts/crawlers/twitter_client.py 10 KB
  • scripts/crawlers/twitter_types.py 5 KB
  • scripts/crawlers/wechat.py 17 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · nanmicoder/newscrawler100GPL-3.0
nanmicoder/skills-agent-proto100MIT

Migawka bazy z 28.10.2026 · wersja paczki 0f93adcd237a (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100news-briefing-research
    Buduje briefingi informacyjne z GDELT, BBC, CNN, Guardiana i Yahoo News przez API Crawlora, zachowując linki, daty i niepewność źródeł.
  • 100bbc-news
    Pobiera i wyświetla wiadomości BBC News z kanałów RSS, według działów (technologia, biznes, polityka, nauka) oraz regionów Wielkiej Brytanii i świata.
  • 100naver-recruit-collect
    Zbiera aktualne publiczne oferty pracy z NAVER Careers (recruit.navercorp.com), opcjonalnie wg słowa kluczowego, tylko do odczytu, i drukuje znormalizowaną tablicę JSON.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.