Skip to content

网页蒸馏室

概述

网页蒸馏室是一个高纯度的网页内容提取工具。它支持从快速 HTTP 获取交互式浏览器爬取三种不同粒度的提取模式,能将网页中的噪音(广告、导航栏、侧边栏)滤除,只保留你真正需要的内容。

核心场景

你想把一篇博客文章保存为 Markdown?需要从某个动态页面提取数据但页面用了大量 JS 渲染?或者想为某个网站定制一套自动提取规则以后反复使用?网页蒸馏室就是帮你做这些事的。

核心功能

  • 三层蒸馏模式:快速模式(纯 HTTP 请求,毫秒级)、智能模式(隐藏浏览器渲染,支持 SPA)、交互模式(可视化配方编辑),按需选择
  • 智能内容清洗:6 阶段蒸馏管道自动完成去噪、提取、格式转换,结果像直接蒸馏过一样纯净
  • 站点配方系统:内置 Bilibili、微信公众号、GitHub、GitLab 等高频站点的提取规则,支持用户自定义持久化配方
  • 身份与 API 嗅探:管理 Cookie 身份信息,自动发现页面的 API 请求,方便逆向分析
  • Agent 自动化能力:可直接被 AI 助手调用,支持 quickFetch(静态页)和 smartExtract(动态页)两种 Agent 接口

快速上手

首次提取页面 5 步走

第一步:打开工具

在左侧工具列表中找到 网页蒸馏室,点击进入。默认进入 蒸馏工作台 标签页。

TODO: 截图 - 工具整体界面,标注默认的工作台、输入框和三个模式按钮

第二步:输入 URL

在顶部地址栏输入目标网页的完整 URL(例如 https://example.com/article),然后选择提取模式:

  • 快速模式:⚡ 最快的选择,纯 HTTP 请求获取内容。适合静态博客、文档页面
  • 智能模式:🧠 启动隐藏浏览器渲染页面,支持 JS 动态加载。适合 SPA、需要登录的页面

TODO: 截图 - 地址栏输入 URL 后,标注快速/智能模式按钮

第三步:开始蒸馏

点击 获取内容 按钮(或按回车),工具开始抓取并清洗网页。

对于快速模式,结果通常在几秒内返回。智能模式因为要启动隐藏浏览器,会稍慢一些。

TODO: 截图 - 加载过程中的进度提示

第四步:查看结果

提取完成后,左侧预览区显示清洗后的内容,右侧信息栏展示提取质量评分、字数统计、匹配配方等元数据。

TODO: 截图 - 结果展示页面,标注预览区和右侧信息面板

第五步:使用结果

结果区的操作栏提供以下功能:

操作说明
发送到聊天将提取内容直接发送到 AI 聊天会话,继续与 AI 对话
查看原文切换到原始 HTML 源码视图,便于排查提取问题
查看元数据切换展示提取到的页面元数据(标题、作者、发布日期等)

TODO: 截图 - 结果区操作栏,标注"发送到聊天"等按钮

拖放本地文件

你还可以直接拖放本地的 .html.htm 文件到工作台进行蒸馏处理——这对于调试本地页面或处理离线保存的网页非常有用。

TODO: 截图 - 拖放文件到工作台的动画示意

功能详解

工作台(蒸馏工作台)

工作台是核心操作界面,采用"左预览 + 右侧信息"的布局。

地址栏与工具栏

顶部工具栏集成了完整的操作入口:

  • URL 输入框:输入目标网页地址
  • 加载状态指示器:显示当前加载进度
  • 模式切换:快速 / 智能两种提取模式
  • 刷新按钮:使用相同模式重新提取当前 URL
  • 打开交互配方:快速跳转到交互模式,对当前页面进行精细化配方编辑

TODO: 截图 - 顶部工具栏,标注各功能区域

结果预览区

展示蒸馏后的网页内容。支持两种视图切换:

  • 提取结果:默认视图,展示清洗后的纯净内容
  • 原始快照:切换展示原始 HTML 源码,便于诊断提取效果

信息侧栏

右侧信息面板展示了提取结果的元数据:

信息项说明
提取质量0-100% 的质量评分,基于内容完整度和噪音比例
提取模式当前使用的蒸馏模式(fast / smart)
字数提取内容的字符数
格式输出格式(Markdown / Text / HTML / JSON)
匹配配方如果有匹配的站点配方,显示配方名称
提取时间内容获取的时间戳

拖放上传

工作台支持拖放本地 HTML 文件。将文件拖入工作台区域后,工具会自动读取并蒸馏该文件的内容。

交互配方

交互模式是网页蒸馏室的"精细化工车间"——它通过 Iframe 加载目标页面,让你像使用浏览器的开发者工具一样,直接在页面上点选元素来定制提取规则。

工作流程

第一步:加载页面

在交互工作台的地址栏输入 URL 并加载,目标页面会渲染在左侧的浏览器视口中。

TODO: 截图 - 交互模式界面,标注浏览器视口和右侧工具面板

第二步:拾取元素

点击工具栏的 🎯 拾取 按钮进入元素拾取模式。此时:

  • 鼠标悬停在页面元素上时,元素会高亮显示
  • 底部状态栏显示当前悬停元素的标签名、选择器和文本预览
  • 点击元素即可将其加入包含(include)或排除(exclude)规则列表

TODO: 截图 - 拾取模式下的高亮效果和状态栏信息

第三步:管理提取规则

右侧 提取规则 面板展示所有已添加的规则:

  • 包含规则(绿色):指定哪些元素需要保留
  • 排除规则(红色):指定哪些元素需要移除
  • 支持对规则进行删除和重新排序

TODO: 截图 - 提取规则面板,标注包含/排除规则列表

第四步:配置动作序列

有些页面需要执行一系列操作才能显示完整内容(如展开"查看更多"按钮、滚动加载等)。在 动作序列 面板中,你可以编排以下动作:

动作类型说明参数
click点击指定元素CSS 选择器
scroll滚动页面可选:指定元素 / 距离 / 滚动到底部
wait等待指定时间或元素出现毫秒数 / CSS 选择器
wait-idle等待页面空闲超时时间
remove在提取前移除元素CSS 选择器
input向输入框填入文本选择器 + 值
hover悬停到指定元素CSS 选择器

TODO: 截图 - 动作序列面板,展示已配置的动作步骤

第五步:实时预览

在编辑规则和动作的同时,实时预览 面板会立即展示当前提取结果的变化,方便你边调边看。

TODO: 截图 - 实时预览面板,展示提取效果

第六步:保存为配方

配置完成后,点击 保存配方 按钮,填写配方名称、域名信息并保存。之后访问同一域名的页面时,系统会自动匹配并使用该配方进行提取。

TODO: 截图 - 保存配方弹窗,展示名称、域名、路径模式等字段

站点配方

站点配方是持久化的提取规则集合。工具内置了针对高频站点的预置配方,你也可以创建自己的自定义配方。

内置配方

目前内置的站点配方包括:

站点适用页面
Bilibili视频详情页(/video/**
微信公众号文章页(mp.weixin.qq.com/s/**
GitHub仓库文件页(blob/**)、原始文件(raw.githubusercontent.com)、Gist
GitLab仓库文件页(-/blob/**
Gitee原始文件(raw/**)、文件页(blob/**
Pastebin代码片段页
npm包详情页(/package/**
PyPI包详情页(/project/**

内置配方不可删除,但可以禁用。它们会持续在后台自动匹配,只要访问的 URL 符合配方规则即可生效。

TODO: 截图 - 配方管理页面,展示内置配方和用户配方的卡片列表

配方管理

站点配方 标签页中,你可以:

  • 浏览:通过搜索框快速筛选配方(按名称或域名)
  • 编辑:点击编辑按钮跳转到交互模式修改配方规则
  • 启用/禁用:切换配方的激活状态
  • 删除:删除用户自定义配方(内置配方不可删除)
  • 查看:点击域名快速在浏览器中打开目标网站

有些网站需要登录后才能访问内容。身份卡片标签页允许你管理浏览器的 Cookie,在提取需要认证的页面时携带身份信息。

TODO: 截图 - 身份卡片界面,展示 Cookie 注入和查看功能

使用场景

  • 提取需要登录才能查看的页面内容
  • 管理多个网站的认证信息
  • 测试不同用户身份下的页面表现

API 嗅探

当使用智能或交互模式加载页面时,API 嗅探器会自动拦截并记录页面发起的 XMLHttpRequestfetch 请求。

TODO: 截图 - API 嗅探界面,展示发现的 API 请求列表

发现的内容包括

信息说明
请求方法GET / POST / PUT / DELETE 等
请求 URL完整的 API 地址
内容类型响应内容的 MIME 类型
时间戳请求发生的时间

这对于分析页面的数据来源、逆向接口调用非常有用。你可以复制 API URL 到 API 测试工具中进一步分析。

高级用法

自定义元数据提取规则

对于某些特殊站点,默认的元数据提取(标题、作者、发布日期等)可能不够准确。站点配方支持三种元数据提取方式:

  • JSON-LD:从结构化数据中提取(<script type="application/ld+json">
  • 脚本变量:从页面内嵌的 JavaScript 变量中提取(如 Bilibili 的 __INITIAL_STATE__
  • Meta 标签:从 HTML <meta> 标签中提取

在配方编辑器中,你可以为每个站点自定义这些规则,支持多字段映射和值回退。

纯净模式

在快速或智能提取时,可以开启 纯净模式 来过滤掉所有超链接,只保留纯文本内容。这在提取的链接过多影响阅读时特别有用——例如提取一个包含大量导航链接的页面。

与 AI 聊天联动

提取结果可以一键发送到 AI 聊天窗口,让你能基于网页内容继续与 AI 对话。在工作台的结果区点击 发送到聊天 按钮即可,系统会自动带上标题和来源 URL。

利用内置配方批量提取

内置配方涵盖了 Bilibili、GitHub 等高频站点。如果需要批量提取这些网站的内容,只需重复输入 URL 并选择快速模式即可——配方会自动匹配并应用于每个页面,无需重复配置提取规则。

本地代理调试

交互模式通过本地代理服务器加载目标页面(绕过同源策略限制)。这意味着你可以在工具中预览任意网页,即使该网页通过 X-Frame-Options 禁止了 iframe 嵌入。代理服务器会在工具关闭时自动释放。

常见问题

Q:快速模式和智能模式有什么区别?我该用哪个?

快速模式 通过纯 HTTP 请求获取网页的 HTML,然后进行清洗。它极快(毫秒级),但不执行任何 JavaScript——对于用 JS 动态渲染内容的页面(如 Vue/React 构建的 SPA),它只能获取到初始 HTML 骨架。

智能模式 会在隐藏的浏览器引擎中渲染目标页面,等待 JavaScript 执行完成后才提取内容。它较慢(通常 3-15 秒),但能完整获取动态内容。

选择建议

  • 大多数静态博客、新闻文章、文档 → 快速模式
  • Vue/React 单页应用、需要等待加载的页面、登录后内容 → 智能模式
  • 需要精细控制提取规则并保存配方 → 交互模式

Q:提取结果显示为空或者质量很低怎么办?

可能的原因和解决办法:

  1. 页面是动态加载的:试试切换到智能模式,让浏览器渲染完成后再提取
  2. 页面需要等待特定元素:在智能模式下使用 waitFor 参数指定需要等待出现的 CSS 选择器
  3. 目标页面有反爬机制:交互模式内置了反检测脚本,尝试先在交互模式中加载页面查看效果
  4. 正文内容被噪音覆盖:在交互模式中使用排除规则(exclude)手动移除噪声元素
  5. 可以创建配方:如果某个网站总是提取不好,考虑为该网站创建一个定制配方

Q:保存的配方对其他页面生效吗?

这取决于你配置的匹配规则:

  • 域名精确匹配:配方只对配置的域名生效(如 www.example.com
  • 路径模式:使用 glob 通配符控制更精确的路径匹配(如 /article/** 只匹配文章路径)
  • 默认行为:如果只配置了域名,该域名下的所有页面都会尝试应用此配方

一个站点可以配置多个配方,系统会按照"域名+路径"最精确的匹配规则优先选择。

Q:交互模式无法加载某些网站怎么办?

这通常由以下原因导致:

  1. 网站有严格的反爬机制:交互模式内置了反检测脚本(隐藏 WebView 特征、伪装 navigator.webdriver 等),但有些网站的反爬策略可能会识别出非真实浏览器环境
  2. 需要登录的页面:先在身份卡片中注入对应网站的 Cookie 后再加载
  3. 代理服务器地址被屏蔽:少数网站会屏蔽来自本地代理的请求,这种情况建议使用智能模式的后端代理
  4. 跨域 CSP 限制:虽然有代理绕过了 iframe 禁止策略,但某些 CSP 规则仍可能影响资源加载

遇到加载问题,可以先查看右侧的 API 嗅探 面板是否有请求被拦截,这通常能提供排查线索。

Q:如何清空 API 嗅探的记录?

API 嗅探 标签页中,点击顶部的清空按钮即可一键删除所有已发现的 API 请求记录。工具关闭或重新加载页面时,嗅探记录也会自动清除。

Q:内置配方可以修改吗?

内置配方(带有"内置"标签的)不可删除和修改,但你可以通过以下方式绕过:

  1. 禁用它:在配方管理页面点击禁用按钮,内置配方将不再自动匹配
  2. 创建覆盖配方:创建一个同名域名但规则更精细的用户配方,系统会自动优先选用
  3. 复制为自定义配方:在交互模式中手动加载目标页面,参考内置配方的规则重建一份并保存

提示

内置配方会随工具更新而迭代优化,如果你对某个内置配方有改进建议,欢迎提交 Issue 或 PR。

Released under the Apache-2.0 License.