如何用代码从 ChatGPT 网页中获取原始 Markdown 格式?

通过 React Dev Tool 的 Hook,可以拿到 React 组件的内部状态,从而拿到 ChatGPT 网页中的原始 Markdown 格式

See all postsPublished on October 29, 2023

如何用代码从 ChatGPT 网页中获取原始 Markdown 格式?

ChatGPT 在输出消息时,会将 Markdown 格式解析成 HTML,虽然可以点击复制按钮去复制原始的 Markdown,但是用代码操作时,却无法通过模拟点击去复制 Markdown。

那么有没有办法通过代码获取到消息的原始 Markdown 呢?

两种方法,使用场景各有不同:

  1. 借助 Turndown 这样的库将 HTML 转成 Markdown,缺点就是转换后可能和原始 Markdown 有出入,尤其是 Turndown 默认不支持表格的转换

方法 1 还有一个衍生版本,就是要求 ChatGPT 在输出内容时,将要输出的所有内容都放在 对中,这样它就不会解析里面的 Markdown,当成代码块来输出原始格式。这种方法大部分场景是适用的,就是有一个小问题,如果要输出的内容中正好有 ,就会有多个代码块,格式会乱掉,一部分在代码块,一部分在外面,结果还是要解析 完整的 HTML。

  1. 借助 React Dev Tool 的 Hook

这种方法可能绝大多数人都没听说过。React 为了支持 React Dev Tool,暴露了一个 Hook,是个全局变量,名称是 "

复制代码
__REACT_DEVTOOLS_GLOBAL_HOOK__

",通过它可以注入到 React 组件内部,拿到组件内部的状态。这就是为什么通过 React Dev Tool 能看到每一个组件的属性和状态。

ChatGPT 的网页是 Nextjs 和 React 开发的,默认是支持 React Dev Tools 的,所以只要写代码去遍历 "

复制代码
__REACT_DEVTOOLS_GLOBAL_HOOK__

",那么就能拿到所有组件的内部状态,然后找到有消息原始 Markdown 内容的组件,就可以得到原始的 Markdown 信息。

但这种方法有两个缺点,一个就是 ChatGPT 的前端换属性名称或者 state 名称了,可能就拿不到了;另外就是这种方法默认只支持 console,或者直接页面执行,在外部浏览器插件的话,拿不到

复制代码
__REACT_DEVTOOLS_GLOBAL_HOOK__

变量,必须通过 RegisteredContentScript 的方法去执行一段脚本,再去做一些内部通信,才能间接获取到,当然理论上还是可以拿到的。

参考代码如下:

css 复制代码
[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object]

See all posts

相关推荐
Shawn_Shawn2 小时前
mcp学习笔记(一)-mcp核心概念梳理
人工智能·llm·mcp
33三 三like4 小时前
《基于知识图谱和智能推荐的养老志愿服务系统》开发日志
人工智能·知识图谱
芝士爱知识a4 小时前
【工具推荐】2026公考App横向评测:粉笔、华图与智蛙面试App功能对比
人工智能·软件推荐·ai教育·结构化面试·公考app·智蛙面试app·公考上岸
腾讯云开发者5 小时前
港科大熊辉|AI时代的职场新坐标——为什么你应该去“数据稀疏“的地方?
人工智能
工程师老罗5 小时前
YoloV1数据集格式转换,VOC XML→YOLOv1张量
xml·人工智能·yolo
win4r6 小时前
🚀OpenClaw高级使用经验分享!2026年最强生产力!五分钟打造多Agent协作编程开发团队!模型容灾机制深度配置+云端Gateway操控本地macOS!
aigc·openai·ai编程
Coder_Boy_6 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
啊森要自信6 小时前
CANN ops-cv:面向计算机视觉的 AI 硬件端高效算子库核心架构与开发逻辑
人工智能·计算机视觉·架构·cann
2401_836235866 小时前
中安未来SDK15:以AI之眼,解锁企业档案的数字化基因
人工智能·科技·深度学习·ocr·生活