Phantomjs停止加载整页

时间:2014-09-11 08:23:44

标签: phantomjs

我在Debian下使用PhantomJS 1.9.7来分析页面内容。由于某种原因,它会在任何资源加载失败时停止加载页面。例如,如果它无法加载.js文件,则它将以状态"失败"结束。所以我得到了

  

无法加载地址:操作取消导致的xxxx

page.open()状态处理程序中。

如果PhantomJS继续加载其他资源,即使其中一些资源无法加载,该怎么办?

2 个答案:

答案 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