运行 来源的 javascript 使用 phantomJS
Run a source's javascript using phantomJS
我想执行以下操作:
- 转到网站
- 单击按钮 => javascript 函数将更改 html
的部分内容
- 获取新更改的一些内容html
所有这些都是自动的
我尝试了几个为 nodejs 提供的工具,包括 node-cralwer and PhantomJS
目前,我在 PhantomJS 中有此代码 运行ning
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
打开一个link和page.open()
时,它是否加载每个文件(js,css...) 就像浏览器一样?
如果是,我如何使用 PhantomJS
到 运行 即 getFullSpec
(包含在另一个 js
文件中)?
- 是的。
- eveluate方法中的Js会在页面中执行,
并且 onclick 侦听器中存在错误。
你可以打开一个页面,打开devtools,在js源中搜索代码。
我想执行以下操作:
- 转到网站
- 单击按钮 => javascript 函数将更改 html 的部分内容
- 获取新更改的一些内容html
所有这些都是自动的
我尝试了几个为 nodejs 提供的工具,包括 node-cralwer and PhantomJS
目前,我在 PhantomJS 中有此代码 运行ning
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
打开一个link和page.open()
时,它是否加载每个文件(js,css...) 就像浏览器一样?如果是,我如何使用
PhantomJS
到 运行 即getFullSpec
(包含在另一个js
文件中)?
- 是的。
- eveluate方法中的Js会在页面中执行, 并且 onclick 侦听器中存在错误。
你可以打开一个页面,打开devtools,在js源中搜索代码。