gpt4 book ai didi

javascript - 使用 phantomJS 运行源的 javascript

转载 作者:行者123 更新时间:2023-12-03 02:12:49 26 4
gpt4 key购买 nike

我想要执行以下操作:

  1. 访问网站
  2. 点击按钮 => JavaScript 函数将更改 html 的部分内容
  3. 获取新更改的html的一些内容

所有这些都是自动的

我尝试了为nodejs提供的几种工具,包括 node-cralwerPhantomJS

目前,我在 PhantomJS 中运行此代码

page.open('https://www.thegioididong.com/dtdd/iphone-x-256gb', function (status) {
console.log("Status: " + status);

var a = page.evaluate(function () {

document.getElementsByClassName("viewparameterfull")[0].click()

console.log(document.getElementsByClassName('parameterfull')[0].textContent)
return document.getElementsByClassName('parameterfull')[0].textContent
})
phantom.exit();
})

输出是

Status: success
ReferenceError: Can't find variable: getFullSpec

使用 Chrome 调试器,我可以看到 getFullSpec 是一个函数:

  • 单击代码中选定的按钮时触发

  • 可以在页面加载时下载的另一个 js 文件中找到。

我的问题是:

  • PhantomJS打开使用page.open()的链接时,它会加载每个文件(js、css.. .) 就像浏览器一样?

  • 如果是这样,我如何使用 PhantomJS 来运行该 getFullSpec (它包含在另一个 js 文件中)?

最佳答案

  1. 是的。
  2. eveluate方法中的js会在页面中执行,并且 onclick 监听器中存在错误。

您可以打开一个页面,打开devtools,在js源中搜索代码。

关于javascript - 使用 phantomJS 运行源的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49479976/

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