gpt4 book ai didi

javascript - PhantomJS 和修改 DOM

转载 作者:太空狗 更新时间:2023-10-29 15:12:17 25 4
gpt4 key购买 nike

我正在开发一种工具,需要从第三方服务器下载网页,像浏览器一样执行它,然后解析 HTML。我遇到的困难是,该工具需要在执行所有 javascript 并修改 DOM 后解析 HTML。我正在尝试为此目的使用 PhantomJS,它适用于一小段代码(只是一个带有外部 javascript 的小 html 文档,将一些节点添加到 DOM)但是当我对真实网站( http://www.dba.dk/ )做同样的事情时,我在 js 代码完成所有修改后,没有得到最终的 HTML。

我真的需要帮助,因为我已经坚持了一个多星期。

我的 PhantomJS 代码很简单:

if (phantom.state.length === 0) {
if (phantom.args.length === 0) {
console.log('Usage: test.js <some URL>');
phantom.exit();
} else {
var address = phantom.args[0];
phantom.state = Date.now().toString();
phantom.viewportSize = { width: 1280, height: 800 };
phantom.open(address);
}
} else {
var elapsed = Date.now() - new Date().setTime(phantom.state);
if (phantom.loadStatus === 'success') {
if (!first_time) {
var first_time = true;
if (!document.addEventListener) {
console.log('Not SUPPORTED!');
}
phantom.render('result.png');
var markup = document.documentElement.innerHTML;
console.log(markup);
phantom.exit();
}
} else {
console.log('FAIL to load the address');
phantom.exit();
}
}

转储到控制台的 HTML 不包含动态生成的内容

最佳答案

问题出在 Flash 插件中。这些页面正在检测它的缺失。一旦正确加载,问题就消失了

关于javascript - PhantomJS 和修改 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com