你能告诉我为什么下面的脚本不能用吗?PhantomJS被困在
调试WebPage - setupFrame“。
// phantomjs --debug=true --ignore-ssl-errors=yes --ssl-protocol=any test.js < data.json
var page = require('webpage').create();
var system = require('system');
var input = JSON.parse(system.stdin.read(2000));
console.log(JSON.stringify(input));
//phantom.onConsoleMessage = function(msg){ console.log(msg); }
page.onResourceError = function(resourceError) {
page.reason = resourceError.errorString;
page.reason_url = resourceError.url;
};
page.open(input.address, function(status){
if (status !== 'success'){
console.log("url: "+page.reason_url+"reason: "+page.reason);
phantom.exit(1)
}
page.onLoadFinished = function(){
input.cookies = page.cookies;
console.log(JSON.stringify(input));
phantom.exit();
};
});data.json
{"cookies": [], "address": "https://google.com"}发布于 2015-11-13 01:28:55
因为在页面加载之后没有进一步的说明,所以它不会做任何事情,而只是坐在那里。
page.open的回调实际上与page.onLoadFinished相同。在已经调用它之后再次设置它将不会第二次运行它,如果中间没有某种操作(站点重定向、单击、表单提交)。
尝试:
page.open(input.address, function(status){
if (status !== 'success'){
console.log("url: "+page.reason_url+"reason: "+page.reason);
phantom.exit(1)
}
input.cookies = page.cookies;
console.log(JSON.stringify(input));
phantom.exit();
});https://stackoverflow.com/questions/33683557
复制相似问题