当我尝试运行以下非常简单的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会返回解析错误...
非常感谢任何帮助!
答案 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'));
};