我正在尝试使用phantom.js编写网络蜘蛛。但是我收到了很多错误信息,我不知道为什么。我的代码如下所示:
使用Nightmare.js :
var Nightmare = require('nightmare');
new Nightmare()
.goto('http://www.amazon.com/Aroma-Housewares-ASP-137-3-Quart-Super/dp/B00024JQ3Q')
.evaluate( function(){
return document.getElementById('priceblock_ourprice').textContent;
}, function( numAnchors ){
console.log(numAnchors);
})
.run();
使用phantom.js :
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.open('http://www.amazon.com/Aroma-Housewares-ASP-137-3-Quart-Super/dp/B00024JQ3Q', function(status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var ua = page.evaluate(function() {
return document.getElementById('priceblock_ourprice').textContent;
});
console.log(ua);
}
phantom.exit();
});
错误信息相同:
phantom stdout: ReferenceError: Can't find variable: ue.......
........
........
phantom stdout: TypeError: 'null' is not an object (evaluating 'old_error_handler.apply')
.......
$35.99
我可以在最后一行得到结果,但上面显示的错误很多,原因是什么?
答案 0 :(得分:2)
这将发生很多。目前的PhantomJS(1.9.7)基于一个与Chrome 13或Safari 5相当的旧QtWebkit分支。有问题的页面很可能在其JavaScript中使用了PhantomJS无法理解的东西。大多数情况下,这无需担心,因为该网站仍将按预期运行。