这个帖子主要是给网页版聊天导出txt用的,比如 gemini google(注意不是aistudio那个网站,那个暂时没做)、gpt,gork这种模型网页版。 如果你本来就是用 API 接 Chatbox、SillyTavern 之类的第三方客户端,那它们本来就能很优雅地导出txt,不太需要折腾这个。 本帖子想解决的问题是:和 AI 高强度聊天,一不小心堆了几百层楼,怎么导出为方便阅读的txt?
其实官方导出也不是不能用,但有的平台会比较慢,或者不能单独导出一个对话、不给 TXT、直接扔 JSON。但是如果想马上丢进小说阅读器里反复回味,或者以后整理成小说,TXT 反而最方便 。所以我折腾了一下 书签 JavaScript(Bookmarklet)。
简单理解就是: 把一段 JS 代码塞进浏览器书签里,点一下书签,它就直接在当前网页执行。
JS 本来就是跑在浏览器里的,要抓一下你和 AI 那些“千奇百怪”的聊天内容再整理成 TXT  ,还是挺顺手的。
它比插件厉害的地方主要是: 不用装东西,Chrome、Edge、Firefox 基本都能用,复制一串代码进书签就完事。而且 手机浏览器也能用。手机上想主动跑点代码其实挺麻烦,书签 JS 算是很省事的一种办法。
那么电脑怎么用书签的js? 随便找一个书签,点编辑。如果你一个书签都没有,就先随便收藏个网页。 然后把书签名称改成“导出 TXT”之类的名字,到时候自己用好理解书签功能。网址改成我提供的那串 JS 代码。
保存以后,在 ChatGPT / Gemini 对话页面点这个书签,它执行的就不是“跳转网页”,而是直接跑代码,把当前聊天整理后下载成 TXT。
以下对计算机不感兴趣的朋友可以先跳过啦,是一些自己的碎碎念:
可能很多人会在同一个对话里疯狂 Roll,搞出一堆分支。这里默认只导出当前页面正在显示的这一条分支,也就是你最后选中的 Roll。理论上也可以把所有分支都遍历出来,不过那就要研究怎么把消息树建立起来了,下载的文件又多还容易出 Bug,我暂时懒得折腾。
下面简单说我找到的两种代码实现方法(我是菜鸡大佬勿喷),我个人更喜欢第二种,可以直接并发,多长的消息都能很快下载合并完。
方法一:让消息老老实实往上滚
让脚本不断往上滚,使劲滚,滚到天荒地老,把以前的消息一层层加载出来。
等全部加载完,再把页面里用户和AI的消息抓出来,整理成 TXT。
优点:简单、老实、不容易出错。
缺点:慢,而且长对话很容易卡。
如果对话超级长,几百层楼滚完以后,网页里同时塞着一大堆消息,浏览器可能直接卡死。
方法二:直接构造消息请求 抓包研究一下请求体的结构,配合浏览器自带的cookie,直接请求聊天数据。这样几百层对话一般几秒钟就能拿完,而且不用把所有消息真的渲染到网页里。
优点:快、不卡、很爽。
缺点:网站一更新,请求格式可能会变,需要重新看一下。
另外如果请求发得太猛,也可能429 。不过目前用下来,这种方法其实还挺稳的。
以下是研究过程中找到的参考的项目:思想大差不差,如果有其他网页版的要导出,思路也差不多。如果大家需要我也可以研究一下。 https://github.com/Kirito-Elucidator/ChatGPT-Exporter https://github.com/sisodiabhumca/ai-exporter
|