gpt4 book ai didi

javascript - phantomjs getElementsByClass() 在评估中无法获取元素

转载 作者:行者123 更新时间:2023-11-28 18:04:50 25 4
gpt4 key购买 nike

我花了很多时间来解决这个问题。下面是我的 phantomjs 代码

var page = require('webpage').create()

page.open("https://www.google.com.hk/",function(status){
if(status === 'success'){
var aa = page.evaluate(function() {
return document.getElementsByClassName('ctr-p').length
})
console.log(aa)
}
phantom.exit(0)
})

如您所见,在评估函数中,当我将其复制到 Chrome Inspect Console 时,返回值 document.getElementsByClassName('ctr-p').length 将打印“3”,如下图所示: enter image description here但是当我执行 phantomjs 代码时,结果是“0”! enter image description here

这有什么问题吗?请~

最佳答案

Google 看到 PhantomJS 的默认用户代理并认为它是某种过时的移动浏览器:

enter image description here

添加现代用户代理将解决该问题。另请参阅以下代码示例以获取其他建议:

var page = require('webpage').create()

// Let's pretend we're Chrome 51
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36';

page.open("https://www.google.com.hk/",function(status){
if(status === 'success'){
var aa = page.evaluate(function() {
return document.getElementsByClassName('ctr-p').length
})
console.log(aa)

// Make screenshots often to confirm
// everything is what you're thinking it is
page.render("googlehk.jpg");

phantom.exit() // 0 = success exit code
}
else {
phantom.exit(1); // 1 = error exit code
}


})

3

关于javascript - phantomjs getElementsByClass() 在评估中无法获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42887083/

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