我正在使用PhantomJS从WebSite获取一些数据,并为实现我的目标而制作了一个样本:
var page=require('webpage').create();
page.open('http://www.phantomjs.org',function() {
var my_data=page.evaluate(function() {
var my_data=document.getElementsByTagName('h1').innerText;
return my_data;
});
console.log(my_data);
phantom.exit();
});
但是此代码不起作用。命令提示符仅打印“ null”。我在这里错过了什么?
答案 0 :(得分:1)
这是因为page.evaluate
是异步函数。因此console.log(my_data)
是在page.evaluate
完成之前执行的,这就是为什么您得到null
的原因。
应该是
var page=require('webpage').create();
page.open('http://www.phantomjs.org',function() {
page.evaluate(function() {
var my_data=document.getElementsByTagName('h1').innerText;
console.log(my_data);
phantom.exit();
});
});