Agent skill · Audited from source
news-extractor
skill · nanmicoder/newscrawlerGPL-3.0 licenceAudited 20 Oct 2026 · source 5fb75b14dea7
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 5fb75b14dea7 and observed network access and no hard-coded secrets. What it does: 新闻站点内容提取。支持 12 个平台:微信公众号、今日头条、网易新闻、搜狐新闻、腾讯新闻、BBC News、CNN News、Twitter/X、Lenny's Newsletter、Naver Blog、Detik News、Quora。当用户需要提取新闻内容、抓取公众号文章、爬取新闻、或获取新闻JSON/Markdown时激活。
Cite
Cite this page
ModelsAtlas. “news-extractor (nanmicoder/newscrawler)”. Retrieved 20 Oct 2026. https://modelsatlas.com/skills/nanmicoder/news-extractor
Trust audit
Audit 0.4.1 · source read 20 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkDeclared5 observations
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 1 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (1)
LOWInsecure cryptocrypto.weak_hash · scripts/crawlers/wechat.py:374
return hashlib.md5(signature.encode("utf-8")).hexdigest()[:16]- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 5fb75b14dea7 · 20 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishernanmicoder GitHub userOwner of the repository this skill is read from
- Source foldernanmicoder/newscrawler/.claude/skills/news-extractorThe exact folder we audited
- LicenceGPL-3.0As the repository states it
- Commit pinned for this verdict5fb75b14dea7A new audit runs when the source changes
- Repository statusNot archivedLast push 73 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: 新闻站点内容提取。支持 12 个平台:微信公众号、今日头条、网易新闻、搜狐新闻、腾讯新闻、BBC News、CNN News、Twitter/X、Lenny's Newsletter、Naver Blog、Detik News、Quora。当用户需要提取新闻内容、抓取公众号文章、爬取新闻、或获取新闻JSON/Markdown时激活。
---
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)
---
## 正文内容
段落内容...

---
## 媒体资源
### 图片 (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)Excerpt, first 5,236 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 5fb75b1
uv sync uv run scripts/extract_news.py "URL" uv run scripts/extract_news.py "URL" --output ./output uv run scripts/extract_news.py "URL" --format json uv run scripts/extract_news.py "URL" --format markdown uv run scripts/extract_news.py "URL" --cookie "auth_token=xxx; ct0=yyy"
git clone https://github.com/nanmicoder/newscrawler git -C newscrawler checkout 5fb75b14dea7
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 5fb75b14dea7 only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
5fb75b14dea7
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/nanmicoder/news-extractor/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
obra/superpowers
Use when creating new skills, editing existing skills, or verifying skills work before deployment
mattpocock/skills
A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Add this badge to your README
[](https://modelsatlas.com/skills/nanmicoder/news-extractor/)
<a href="https://modelsatlas.com/skills/nanmicoder/news-extractor/"><img src="https://modelsatlas.com/skills/nanmicoder/news-extractor/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about news-extractor
What does the news-extractor skill do?
Is news-extractor safe to install?
What can news-extractor access on my machine?
How current is this page?
Sources
- github.com/nanmicoder/newscrawler/tree/main/.claude/skills/news- — the audited source at commit 5fb75b14dea7 and every finding aboveObserved · 20 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the news-extractor skill do?
- Is news-extractor safe to install?
- What can news-extractor access on my machine?