gpt4 book ai didi

javascript - Phantomjs 在页面中禁用 javascript 但启用包含的 javascript

转载 作者:行者123 更新时间:2023-11-29 16:58:04 25 4
gpt4 key购买 nike

我正在使用 phantomjs 从页面检索 CSS 信息而不执行其 javascript。例如,这里是代码片段。

page.settings.javascriptEnabled = false;
page.open('file:///home/sample.html', function(status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
page.includeJs("file:///home/sample.js", function() {
var class = page.evaluate(function() {
return document.querySelector('body').className;
});
console.log(class);
});
}
}

如果我禁用了 javascript,求值函数总是返回 null。但是当我尝试启用 javascript 时,评估函数将返回一些值。有什么想法可以禁用页面中的 javascript,但我包含的 javascript 必须工作吗?

最佳答案

page.evaluate() 在页面上执行 JavaScript。如果你在 PhantomJS 中禁用 JavaScript,那么你实际上不能再使用 page.evaluate() 了。随之而来的是访问 DOM 元素的各种方式。 page.includeJs() 也将不起作用,因为脚本无法在页面上执行。

您仍然可以访问 page.content,它提供对当前页面源(计算源)的访问。您可以尝试使用一些 DOM 库将源代码解析为 DOM 对象1,或者如果任务很简单,您可以尝试使用正则表达式。

1 请注意,PhantomJS 和 node.js 具有不同的执行环境,因此大多数处理 DOM 的 node.js 模块将无法工作

关于javascript - Phantomjs 在页面中禁用 javascript 但启用包含的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30692908/

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