我在Debian下使用PhantomJS 1.9.7来分析页面内容。由于某种原因,它会在任何资源加载失败时停止加载页面。例如,如果它无法加载.js文件,则它将以状态"失败"结束。所以我得到了
无法加载地址:操作取消导致的xxxx
在page.open()
状态处理程序中。
如果PhantomJS继续加载其他资源,即使其中一些资源无法加载,该怎么办?
答案 0 :(得分:2)
SSL很可能是罪魁祸首。您可以尝试各种command line options来修复加载错误,如:
--ignore-ssl-errors=true
--web-security=false
如果您知道每次都无法加载的资源,您可以通过收听onResourceRequested
event显式中止加载:
page.onResourceRequested = function(requestData, networkRequest){
if (requestData.url.indexOf("yourScript.js") !== -1) {
networkRequest.abort();
}
};
您还可以查看onResourceError
的错误类型。
答案 1 :(得分:0)
您可以通过将错误打印到控制台来找到失败的资源。
page.onResourceError = function(resourceError) {
console.log('Unable to load resource (#' + resourceError.id + 'URL:' + resourceError.url + ')');
console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
这应该打印类似
Unable to load resource (#19URL:http://www.google.com)
Error code: 5. Description: Operation canceled