Proxy 代理未响应时的Phantomjs

Proxy 代理未响应时的Phantomjs,proxy,phantomjs,Proxy,Phantomjs,脚本test.js: var page = require('webpage').create(); var url = args[1]; page.open(url, function (status) { console.log(status); phantom.exit(); }); 运行脚本: phantomjs --proxy=1.1.1.1:22 test.js 'http://nonexistent_site.com' 1.1.1.1:22-不存在服务器 -不

脚本test.js:

var page = require('webpage').create();
var url = args[1];
page.open(url, function (status) {
    console.log(status); 
    phantom.exit();
});
运行脚本:

phantomjs --proxy=1.1.1.1:22 test.js 'http://nonexistent_site.com'
1.1.1.1:22-不存在服务器

-不存在的站点


如何在PhantomJS中确定哪一个没有响应-代理还是站点?

您可以通过回调捕获网络超时:

page.onResourceTimeout = function(request) {
    console.log('Response (#' + request.id + '): ' + JSON.stringify(request));
};
page.onResourceError = function(resourceError) {
  console.log('Unable to load resource #' + resourceError.id + ' URL:' + resourceError.url);
  console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
您还可以设置自己的超时:

page.settings.resourceTimeout = 3000; // ms
要拦截网络错误,可以注册回调:

page.onResourceTimeout = function(request) {
    console.log('Response (#' + request.id + '): ' + JSON.stringify(request));
};
page.onResourceError = function(resourceError) {
  console.log('Unable to load resource #' + resourceError.id + ' URL:' + resourceError.url);
  console.log('Error code: ' + resourceError.errorCode + '. Description: ' + resourceError.errorString);
};
在这个位置上,不存在的主机将触发
host not found
错误

但如果使用不工作的代理,即使目标主机不存在,也总是会首先在资源上出现错误
网络超时

因此,如果您想检查代理:)我建议您只打开page.open 100%正常工作的主机,例如,在您操作的服务器上设置一个简单的静态网页


还有一个node.js模块:

谢谢,这是真的,但我认为可以通过API代理工作签入phantom。