我想转储网页的HTML内容,包括<iframe>
元素中包含的iframe HTML。 Chrome开发者工具“元素”标签能够以这种方式显示嵌入iframe。
当我说“转储HTML内容”时,我对Selenium或PhantomJS等浏览器自动化工具感兴趣。这些工具中是否有内置的这种功能?
例如,我想要this page的HTML转储应该包含this embedded page的HTML源代码。
答案 0 :(得分:-1)
您可以使用phantomjs来实现此目的
以下是幻像js服务器代码的代码片段。
var system = require('system');
var url = system.args[1] || '';
if(url.length > 0) {
var page = require('webpage').create();
page.open(url, function (status) {
if (status == 'success') {
var delay, checker = (function() {
var html = page.evaluate(function () {
var body = document.getElementsByTagName('body')[0];
if(body.getAttribute('data-status') == 'ready') {
return document.getElementsByTagName('html')[0].outerHTML;
}
});
if(html) {
clearTimeout(delay);
console.log(html);
phantom.exit();
}
});
delay = setInterval(checker, 100);
}
});
}
在html上你使用“data-status”属性让phantomjs知道当页面准备就绪时html属于你。如果html页面不属于您,则另一种选择是使用一个很好的超时。