如何在Chrome中将整个Web DOM转换为当前状态?

时间:2012-08-27 17:55:41

标签: dom dump google-chrome-devtools

我想将当前DOM转储到文件中并能够脱机查看。基本上,我有一个过时的页面版本,我想留下来进行比较。一旦我关闭浏览器,我就会失去它,所以我想完全保存DOM。

already an answer for doing this in Firefox但我如何在Chrome中执行此操作?

4 个答案:

答案 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可能没有寻找命令行解决方案,但搜索时搜索结果显示为高,因此其他人可能会发现它很有用)

2017年原始答案

我最喜欢的方法是:

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>已展开的所有内容。