我想将当前DOM转储到文件中并能够脱机查看。基本上,我有一个过时的页面版本,我想留下来进行比较。一旦我关闭浏览器,我就会失去它,所以我想完全保存DOM。
有already an answer for doing this in Firefox但我如何在Chrome中执行此操作?
答案 0 :(得分:23)
使用Web Inspector(F12),转到“元素”选项卡,右键单击代码中的<html>
标记,然后选择“复制为HTML”。然后将其粘贴到新文件中并保存。
答案 1 :(得分:5)
在Chrome开发工具控制台中,键入document.documentElement.outerHTML
(使用Tab键进行自动完成以保存击键),然后按Enter键以查看显示的DOM文本。要将其复制到剪贴板并粘贴到其他位置,请改用copy(document.documentElement.outerHTML)
。
Damon的回答也很好(在Dev Tools中,单击Elements,右键单击<html>
,单击Copy> Copy externalHTML),但是我发现Console命令更容易。
答案 2 :(得分:4)
对于较新版本的Chrome,这很容易做到:
google-chrome --headless --dump-dom 'http://www.yahoo.com'
(OP可能没有寻找命令行解决方案,但搜索时搜索结果显示为高,因此其他人可能会发现它很有用)
我最喜欢的方法是:
docker run -it --rm --name chrome --shm-size=1024m --cap-add=SYS_ADMIN --entrypoint=/usr/bin/google-chrome-unstable yukinying/chrome-headless-browser --headless --disable-gpu --dump-dom https://www.facebook.com
如果您不熟悉Docker的工作原理,请耐心等待 - 第一次会很慢,但后续调用会很快。
其他信息
经过测试
Ubuntu 16
Linux intel-nuc 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Docker版本:
Docker version 1.10.3, build 20f81dd
Mac OS X Sierra
Darwin MacBook-Pro.local 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64 i386 MacBookPro14,3 Darwin
Docker版本:
Docker version 17.06.1-ce, build 874a737
如果您安装tidy
,也可以缩进HTML。
答案 3 :(得分:3)
我目前使用的是版本53.0.2785.113米的Chrome。其他答案似乎不再有效。要正确复制所有子/后代元素,用户现在必须右键单击<html>
,然后在复制前单击“全部展开”。另外,你不会递归复制所有元素。正常的Ctrl + C将复制<html>
已展开的所有内容。