PhantomJS不起作用

时间:2018-08-07 07:35:03

标签: javascript web-scraping phantomjs web-crawler

我正在使用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”。我在这里错过了什么?

1 个答案:

答案 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();
    });    
});