特定站点上的PhantomJS解析错误

时间:2013-07-25 08:51:48

标签: phantomjs

当我尝试运行以下非常简单的PhantomJS脚本时,我得到一个解析错误:

var page = require('webpage').create();
page.open('http://compare.nissanusa.com/nissan_compare/NNAComparator/TrimSelect.jsp', function (status) {});

任何人都知道为什么会发生这种情况?错误消息根本没有帮助...它只是说“解析错误”。

这可能是PhantomJS中的错误吗?

我正在使用PhantomJS 1.9版。我可以使用其他URL运行上述脚本,但由于某种原因,某些URL会返回解析错误...

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

这只是因为网站http://compare.nissanusa.com/nissan_compare/NNAComparator/TrimSelect.jsp上存在javascript错误。 Parse Error不是因为您的代码。

Phantomjs在加载页面时并不喜欢js错误,这就是添加错误处理程序的重要原因。

要轻松捕获网页中发生的错误,无论是语法错误还是其他抛出的异常,请使用page.onError

这是一个基本的例子:

page.onError = function(msg, trace) {
    var msgStack = ['ERROR: ' + msg];
    if (trace && trace.length) {
        msgStack.push('TRACE:');
        trace.forEach(function(t) {
            msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : ''));
        });
    }
    console.error(msgStack.join('\n'));
};