4

当我尝试运行以下极其简单的 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 返回解析错误......

任何帮助将不胜感激!

4

1 回答 1

3

这只是因为网站上有一个 javascript 错误http://compare.nissanusa.com/nissan_compare/NNAComparator/TrimSelect.jspParse 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'));
};
于 2013-07-25T20:24:38.453 回答