点一下把任何网页变成LLMNative文档
要把某个网页内容塞给大模型时,你会怎么做?
请先投个票:
有些网站已经走在了前面,比如智谱、OpenAI、火山的官方文档,贴心地提供了「复制 Markdown」按钮,一键就能拿到干净整洁的文本,非常 LLM 友好。



但不幸的是,这样的网站还极其少数。现实则是,像 阿里云 、 AWS 等大站及无数小站的文档,依旧还停留在「非 AGI 时代」, 没有任何针对大模型的优化 。


那怎么办呢?
一个最简单粗暴的方法: Ctrl/Command+A 全选, Ctrl/Command+C 复制。
倒也能用,并不太影响大模型的理解。
但用过的都知道,尤其对于页面结构复杂一些的页面, 这也只能算是能用,但真的不好用 。因为复制出来的内容会丢失大量页面结构信息,标题层级没了,代码块乱了,表格更是各种一团糟……
简直就是不忍直视。
那还能怎么办呢?
办法自然是有的,我先来分享一个万能大法:
打开浏览器开发者工具,查看当前站点的 DOM 结构,复制 HTML:

再用 html 转 markdown 的工具(如 https://htmlmarkdown.com/) 转成 Markdown,即可。

这个办法虽然万能,但 效率实在是太低了 ,我可不想每次都这么干。
有没有更优雅的方案呢?
当然有!
开始之前,先来介绍今天要用到的工具: Jina Reader 。


一个前缀搞定一切
Jina Reader 的用法很简单:
在任何网址前面加上 r.jina.ai/ ,就能得到这个网页的 Markdown 版本。
比如,你想把 https://docs.aws.amazon.com/xxx 转成 Markdown,只需要访问:
https://r.jina.ai/https://docs.aws.amazon.com/xxx
就这么简单。
Jina Reader 会帮你完成所有脏活累活:渲染 JavaScript、提取正文内容、过滤导航栏和广告、转换成干净的 Markdown。
而且它是免费的。
每个 API Key 自带 1000 万免费 tokens,不注册也能用(只是有速率限制)。
但每次手动去拼这个链接,自然也挺费事。所以我来分享两种偷懒办法:
方案一:书签大法(最简单)
如果你只是偶尔用用,最简单的方式是做一个浏览器书签。
操作步骤:
右键点击书签栏,选择「添加书签」
名称随便填,比如「转 Markdown」
网址填入以下代码:
javascript:window.open('https://r.jina.ai/'+encodeURIComponent(location.href));
复制
使用方法:
在任何网页上点击这个书签,就会自动打开一个新标签页,显示当前网页的 Markdown 版本。
复制,粘贴给大模型,搞定。
这个方案的优点是:零配置,即开即用。
但它也有局限:对于一些动态加载的网页(比如 X、知乎专栏),可能会因为内容还没加载完就被抓取,导致获取的内容不完整。
当然, 这个书签大法如果你学会了,那记得别只用它来做个 Jina,我自己就有很多很多这样的书签。
记得要学会举一反三,如果实在不会,就问问 AI 吧。
学会了记得来感谢我。
方案二:油猴脚本(更灵活)
如果你是重度用户,或者经常需要处理动态网页,则推荐使用油猴脚本方案,截图展示:

(当然,你也可以用 AI 写个浏览器插件,但这么点事就 duck 不必了)
相比书签方案,它可以:
动态页面支持 :通过设置超时参数,等待页面完全加载后再抓取
API Key 支持 :获得更高的速率限制(从 20 次/分钟提升到 500 次/分钟)
一键复制 :直接复制到剪贴板
下载为文件 :保存为 .md 文件
快捷键触发 :按 Alt+J 即可转换(你也可以改一下代码换成其他键)
安装步骤:
先安装 Tampermonkey 扩展,在这里:https://www.tampermonkey.net/
点击 Tampermonkey 图标 → 「添加新脚本」
删除默认内容,粘贴以下代码:
// ==UserScript==// @name Jina Reader Pro - 网页转 Markdown// @namespace http://tampermonkey.net/// @version 1.0// @description 一键将任何网页转换为大模型友好的 Markdown 格式// @author Your Name// @match *://*/*// @grant GM_xmlhttpRequest// @grant GM_setClipboard// @grant GM_notification// @connect r.jina.ai// ==/UserScript==(function() { 'use strict'; // ============ 配置区域 ============ // 在这里填入你的 Jina API Key(可在 https://jina.ai/reader/ 免费获取) // 留空也能用,但有 API Key 可获得更高速率限制 const API_KEY = ''; // 等待页面加载的超时时间(秒),对动态页面很有用 const TIMEOUT = 30; // 快捷键设置(默认 command/control + J) const HOTKEY = { ctrlOrCmd: true, key: 'j' }; // ============ 配置结束 ============ // 创建悬浮按钮 function createFloatButton() { const btn = document.createElement('div'); btn.id = 'jina-reader-btn'; btn.innerHTML = '📄'; btn.title = '转换为 Markdown (Alt+J)'; btn.style.cssText = ` position: fixed; bottom: 20px; right: 20px; width: 50px; height: 50px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; cursor: pointer; box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); z-index: 999999; transition: all 0.3s ease; `; btn.addEventListener('click', convertPage); document.body.appendChild(btn); return btn; } // 核心转换函数 function convertPage() { const btn = document.getElementById('jina-reader-btn'); if (btn) { btn.innerHTML = '⏳'; btn.style.opacity = '0.7'; } const headers = { 'x-timeout': String(TIMEOUT) }; if (API_KEY) headers['Authorization'] = 'Bearer ' + API_KEY; GM_xmlhttpRequest({ method: 'GET', url: 'https://r.jina.ai/' + location.href, headers: headers, timeout: (TIMEOUT + 10) * 1000, onload: function(response) { if (btn) { btn.innerHTML = '📄'; btn.style.opacity = '1'; } if (response.status === 200) { showResult(response.responseText); } else { alert('请求失败: HTTP ' + response.status); } }, onerror: function() { if (btn) { btn.innerHTML = '📄'; btn.style.opacity = '1'; } alert('网络错误'); } }); } // 显示结果弹窗 function showResult(content) { const overlay = document.createElement('div'); overlay.style.cssText = ` position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); z-index: 9999999; display: flex; align-items: center; justify-content: center; `; const modal = document.createElement('div'); modal.style.cssText = ` width: 90%; max-width: 900px; height: 80%; background: #1e1e1e; border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; `; modal.innerHTML = ` <div style="padding:15px 20px;background:#2d2d2d;display:flex;justify-content:space-between;align-items:center;"> <span style="color:#fff;font-size:16px;">📄 Markdown 结果</span> <div> <button id="jina-copy" style="background:#4CAF50;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;margin-right:10px;">📋 复制</button> <button id="jina-download" style="background:#2196F3;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;margin-right:10px;">💾 下载</button> <button id="jina-close" style="background:#666;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;">✕ 关闭</button> </div> </div> <pre style="flex:1;margin:0;padding:20px;overflow:auto;color:#d4d4d4;font-family:monospace;font-size:14px;white-space:pre-wrap;"></pre> `; modal.querySelector('pre').textContent = content; overlay.appendChild(modal); document.body.appendChild(overlay); document.getElementById('jina-copy').onclick = function() { GM_setClipboard(content, 'text'); this.textContent = '✅ 已复制'; setTimeout(() => { this.textContent = '📋 复制'; }, 2000); }; document.getElementById('jina-download').onclick = function() { const blob = new Blob([content], { type: 'text/markdown' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = (document.title || 'page').replace(/[/\:*?"<>|]/g, '-') + '.md'; a.click(); }; document.getElementById('jina-close').onclick = () => overlay.remove(); overlay.onclick = (e) => { if (e.target === overlay) overlay.remove(); }; } // 监听快捷键 document.addEventListener('keydown', function(e) { const ctrlOrCmdPressed = e.ctrlKey || e.metaKey; if (ctrlOrCmdPressed === HOTKEY.ctrlOrCmd && e.key.toLowerCase() === HOTKEY.key.toLowerCase()) { e.preventDefault(); convertPage(); } }); // 初始化 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createFloatButton); } else { createFloatButton(); }})();
按 Ctrl+S 保存
使用方法:
点击页面右下角的 📄 按钮

或者按 Control+J 或 Command+J 快捷键
然后等待数秒,就会看到这样的结果了:

弹出的窗口里,你就可以直接复制或下载后扔给 LLM 去玩了。
关于 API Key
当然,Jina 还是挺大方的,不带 API Key 也一样能跑,但有两个限制:
速率限制 :每分钟只能请求 20 次
动态页面 :部分参数(如超时时间)需要 API Key 才能生效
获取 API Key 很简单,访问 https://jina.ai/reader/,页面上就能看到你的专属 Key。
版权声明:
作者:shadowrocket
链接:https://www.shadowrocket9.top/42.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。


共有 0 条评论