1 NoOneNoBody 2024-08-24 16:24:36 +08:00 因为页面内 js 不能操作文件,不然可以存木马了,所以需要扩展或可操作本地文件的程序 |
2 xiguaprince OP @NoOneNoBody 不操作文件,只是把 dom 转成单个 mht 格式的 string , 这个有什么现成的库吗 |
3 xiguaprince OP ![]() 实在不行 我只能扒现成插件的代码了 呜呜呜 |
4 xiguaprince OP 怎么有人还感谢我 |
5 NoOneNoBody 2024-08-24 18:23:30 +08:00 没有这样的库,还是那个原因:页面 js 不能操作本地文件 js 读不到浏览器缓存,所以,js 要转图片为 base64 ,需要重新请求一遍,通过 canvas 转 base64 而且还有前置工作是 parse 整个页面,还有非图片的二进制文件如字体,我还想不到怎么做,还有跨域问题,归结一句就是个单页面爬虫了,不如发给其他工具完成 但扩展是有权限读取缓存的,所以就容易很多了 这复杂程度,个人觉得页面 js 不能完成,起码要扩展或者发送给外部完成 |
6 Xu3Xan89YsA7oP64 2024-08-24 18:37:16 +08:00 这又没啥难度,随便手撸下就能粗略地实现,想更完善就去 npm 搜呗,多到你都挑不过来 |
![]() | 7 imdong 2024-08-24 18:37:19 +08:00 via iPhone 也许有一个方案,仅猜测。 pwa 的方式,在 worker 中拦截流量,最后将记录下的数据处理后替换或者重新生成。 但只适合自己的站点。 理论哈,不确定是否可以。 |
![]() | 8 kkocdko 2024-08-24 21:28:08 +08:00 ![]() 这里有一个简陋版的实现,你可以抄一下,根据实际情况改改。 !请注意,不可能适配所有页面,不可能适配所有页面!总是会有局限性的。 https://github.com/kkocdko/user-scripts/tree/master/scripts/save-page |
![]() | 9 subframe75361 2024-08-24 21:57:08 +08:00 document.documentElement.innerHTML ? |
10 fyq 2024-08-24 22:47:23 +08:00 可以考虑装一个油猴插件,然后写一个油猴脚本,在网页上插入一个按钮,点一下把你要的这些 html 文本复制到剪贴板里去处理。 不会没关系,具体代码可以让 ChatGPT 帮你写。 |
![]() | 12 zeusho871 2024-08-24 22:48:43 +08:00 blob |
![]() | 13 noqwerty 2024-08-24 22:53:21 +08:00 |
![]() | 14 ZztGqk 2024-08-24 23:06:39 +08:00 ![]() 而是获取带样式和图片 base64 的 html 文本?所以是在找 parser ? https://developer.mozilla.org/en-US/docs/Web/API/DOMParser |
15 xiguaprince OP @ZztGqk 应该是这样,不过仅凭它能把 dom 转成带图片和所有样式的 html/mhtml 吗 |
16 xiguaprince OP @kkocdko 感谢!是这种!一会我运行下看看效果 |
17 xiguaprince OP 还有哪位大佬知道呀 |