下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-vkwncxc8--web-tutorial-to-article.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-vkwncxc8/web-tutorial-to-article。这个技能可以将一个或多个网页教程页面转换成一个整洁的 Markdown 文章。它会使用 requests 获取页面内容,通过 BeautifulSoup 提取主要内容(剔除导航/广告/侧边栏,并自动保留代码块),并且可以选择使用用户自己的 OpenAI 兼容 LLM key 重新编写每个部分——提取关键点并将内容拆分为结构良好的章节(## 章节 ###/#### 小节,笔记式浓缩,绝不歪曲事实)。
支持单个 –url 或一个 –list 的 URL,每个 URL 都会变成一个章节(顺序由列表决定)。输出为 .md 文件,并在 stdout 打印纯文本摘要。当用户粘贴一个或多个教程链接,并想要精炼、结构清晰的笔记而不是杂乱网页时使用。无后台,无付费——key 来自用户自己。
阅读全文 (展开查看完整说明)
概述
网页教程整理成文章(web-tutorial-to-article)
把一个(或一组)网页教程,整理成一篇干净的 Markdown 文章:剥掉导航 / 广告 / 侧边栏等噪声 → 提取正文 →(可选)用 LLM 提炼关键内容、并分成合适的章节与小节。
- 单页:给一个链接,整理成一篇文章。
- 多页合成一篇:给一个 URL 列表,列表里的每一页 = 一章,章节顺序由列表决定(你完全控制结构)。
- 输出
.md文件;同时把纯文本摘要打到 stdout,agent 可直接转述,无需再读文件。
全部 AI 调用走用户自己的 OpenAI 兼容 key;提取与排版本身不依赖 key(没 key 也能出「纯提取版」)。
⚠️ 开始前:向用户收集「一套」LLM 凭证
本 Skill 只需要 LLM(总结/改写) 这一套,比 video-summary 简单(没有 ASR):
| 项 | 示例 | 说明 |
|---|---|---|
| LLM 模型 | gpt-4o-mini / deepseek-v4-flash | 任意 OpenAI 兼容对话模型 |
| LLM 接口地址(URL / base) | https://api.openai.com/v1 / https://dashscope.aliyuncs.com/compatible-mode/v1 | 改写服务基址 |
| LLM 密钥(key) | sk-... | 对应上面那个 LLM 服务的 key |
没拿到 key 也能跑:脚本会退化为「纯提取版」(只清洗+排版,不调 LLM,免费)。但要出"文章级"质量,建议让用户提供 key。
⚡ Agent 最快路径(照抄即可,别多想)
第一步:确认输入是「单个链接」还是「一组链接的列表文件」。
- 单个链接:直接用
--url。 - 一组链接:让用户给你一个列表文件(每行一个链接,可带章节标题),用
--list。
第二步:拼命令、运行。
# 单页:直接整理成一个 .md 文章(LLM 改写)
python scripts/web_to_article.py
--url "https://www.runoob.com/ml/ml-tutorial.html"
--llm-model "gpt-4o-mini" --llm-base "https://api.openai.com/v1" --llm-key "<sk-...>"
--output ml-tutorial.md
# 多页:列表决定章节(每页=一章,顺序按列表)
python scripts/web_to_article.py
--list "pages.txt"
--title "机器学习入门"
--llm-model "gpt-4o-mini" --llm-base "https://api.openai.com/v1" --llm-key "<sk-...>"
--output ml-series.md
# 没 key 也行:纯提取版(免费,不调 LLM)
python scripts/web_to_article.py --url "<链接>" --no-llm --output article.md列表文件 pages.txt 写法(每行一种都支持):
机器学习简介 | https://www.runoob.com/ml/ml-tutorial.html
监督学习 | https://www.runoob.com/ml/ml-supervised-learning.html
[无监督学习](https://www.runoob.com/ml/ml-unsupervised-learning.html)
https://www.runoob.com/ml/ml-decision-tree.html跑完直接转述屏幕输出,不要去读 .md。 脚本结束会把纯文本摘要(标题/来源/章节数/各章首行/输出路径)打到 stdout,直接转述给用户;.md 文件留作可分享产物。
📡 输出信号解读(跑完看这个判断成败)
| 现象 | 含义 | 你要做的 |
|---|---|---|
| stdout 出现「网页教程整理(纯文本…)」大段文字 | ✅ 成功 | 把这段转述给用户;.md 路径也在其中 |
报错 必须提供 --url 或 --list / exit 1 | 没给输入 | 向用户要链接或列表文件 |
报错 列表文件里没有解析到任何有效链接 / exit 1 | 列表文件空或格式不对 | 检查列表文件 |
报错 所有页面都抓取/提取失败 / exit 4 | 链接失效、网络受限、或站点反爬 | 换链接;确认网络 |
报错 LLM 接口返回 401/... / exit 6 | LLM 的 key 或 base 不对 | 向用户要正确的 LLM 凭证 |
| 部分页面 WARN 跳过 | 个别链接失败,其余成功 | 告知用户哪些页没成功 |
进度信息(抓取中、LLM 改写中)打到 stderr,纯文本摘要在 stdout,互不干扰。
何时使用
- 用户丢来一个教程链接,说"把这个网页整理成文章""帮我把这个教程存成笔记""这几页合并成一篇"。
- 用户想要一份干净、可离线编辑的 Markdown(而非满是广告/导航的网页),用于博客、笔记、知识库。
- 用户要把冗长教程提炼成精简笔记,并自动按主题分成清晰的章节/小节(而非照搬整页)。
工作流
- 抓取:
requests下载网页(带浏览器 UA)。 - 提取正文:BeautifulSoup 定位正文、自动抢救代码块(把 runoob 这类"非
<pre>代码容器"转成<pre>,避免# 注释变假标题),再转成 Markdown;自动剥离script/style/nav/footer/aside及广告类节点。 - 改写(可选,核心卖点):每页正文交给 LLM 以理论知识为主地提炼 + 分章分节。
- 用
## 章节标题开头,以理论知识/概念讲解为主:聚焦原理、定义、思想与结论。 - 提炼关键内容:抓核心概念/要点/结论,删冗余口水话与广告残留,做"笔记式"精炼(不歪曲技术事实)。
- 分成合适小节:用
###/####把本章组织成逻辑清晰的小节,而不是一整段堆砌。 - 不要代码的运行结果/执行输出:若保留代码示例(仅作原理示意),去掉 "运行结果:…" / 打印输出 / 预测数值等执行产物,避免大段可运行脚本——只留说明理论所需的最小代码/公式。
- 没 key 则跳过改写,直接用提取的 Markdown(纯提取版不提炼、不分节、不去运行结果,仅清洗排版)。
- 用
- 组装 + 打印:拼总标题 + 导言 + 各章,写出
.md;同时把纯文本摘要打到 stdout。- 每章都强制以规范的
## 标题开头(代码层保证,不依赖 LLM 是否真写了标题);若某章 LLM 返回空/极短(例如示例型页面被过度删减),会自动回退到原始提取文本,绝不让任何章节凭空消失、也不会因缺标题而被并入上一章。 - 想每章一个独立
.md?加--split-dir <目录>:脚本会额外在该目录生成index.md(总标题+导言+目录)和NN-标题.md(每章一个文件,含其##标题,即使首章标题被去重也会补回),方便分文件阅读/发布。
- 每章都强制以规范的
前置条件(用户侧)
- Python 3.10+,网络可访问目标网页。
- LLM 凭证(见顶部):要做"文章级"改写才需要;纯提取不需要。
- 第三方依赖(
requests/beautifulsoup4/markdownify)首次用到自动 pip 安装。
调用方式(参数速查)
| 参数 | 必填 | 说明 |
|---|---|---|
--url | 二选一 | 单个网页教程链接 |
--list | 二选一 | URL 列表文件(每页=一章;支持 纯链接 / 标题|链接 / [标题](链接)) |
--output | 否 | 输出 .md 路径,默认 article.md |
--title | 否 | 文章总标题(缺省取首章标题) |
--llm-key | 视情况 | LLM 密钥(改写用;缺省用 --api-key) |
--api-key | 可选 | OpenAI 兼容密钥(LLM 共用);或设环境变量 OPENAI_API_KEY |
--llm-base | 否 | LLM 接口基址,缺省用 --api-base |
--api-base | 否 | LLM 基址默认值,默认 https://api.openai.com/v1 |
--llm-model | 否 | LLM 改写模型,默认 gpt-4o-mini |
--lang | 否 | 输出语言,默认 中文 |
--no-llm | 否 | 强制纯提取(即使有 key 也不调 LLM) |
--no-print-summary | 否 | 不把纯文本摘要打到 stdout(默认会打印) |
--split-dir | 否 | 额外把每章拆成独立 .md 写到该目录(生成 index.md + NN-标题.md,每章文件自包含含其 ## 标题) |
限制(务必诚实告知用户)
- LLM 改写需要用户自己的 key,按量计费;纯提取免费但不改写。
- 正文提取依赖网页结构,个别强反爬 / 纯 JS 渲染站点可能提取不全(可提示用户换源或手动提供文字)。
- 改写是"基于原网页的重组",不保证 100% 修正原站错误;代码与事实以原站为准。
- 更详尽机制与排错见
references/web-to-article-guide.md。
资源
scripts/web_to_article.py— 核心脚本(抓取→提取→改写→组装 .md + 打印纯文本)。references/web-to-article-guide.md— 技术原理、参数细节、排错与边界说明。scripts/_selftest.py— 离线自测(无需网络/key),跑python scripts/_selftest.py即可验证无回归。