gpt4 book ai didi

phantomjs - phantomJS网页超时

转载 作者:行者123 更新时间:2023-12-03 08:53:48 25 4
gpt4 key购买 nike

我已经设置了一个脚本来创建我们应用程序的网络快照。
它运行完美,一切正常,直到遇到URL损坏的图像:

 "<img src='http://testserver.our.intranet/fetch/image/373e8fd2339696e2feeb680b765d626e' />"

我设法使用下面的方法在6秒后打破了脚本,直到它永远循环。

但是,可以忽略网络请求( AKA将图像从 DOM中取出),然后继续创建没有图像的拇指(或插入图像而缺少图像!)。
var page = require('webpage').create(),
system = require('system'),
address, output, size;

if (system.args.length < 3 || system.args.length > 5) {
phantom.exit(1);
} else {
address = system.args[1];
output = system.args[2];
page.viewportSize = { width: 640, height: 640 };
page.zoomFactor = 0.75;
page.clipRect = { top: 10, left: 0, width: 640, height: 490 };
try{
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to load the address!');
phantom.exit();
} else {
window.setTimeout(function () {
page.render(output);
phantom.exit();
}, 200);
}
});
} finally{
setTimeout(function() {
console.log("Max execution time " + Math.round(6000) + " seconds exceeded");
phantom.exit(1);
}, 6000);
}
}

最佳答案

PhantomJS 1.9引入了一个新设置resourceTimeout,它控制请求在取消之前可以花费多长时间。除此之外,如果/当请求超时时,还会触发onResourceTimeout事件。

这是说明以上所有内容的代码段:

var page = require('webpage').create();  
page.settings.resourceTimeout = 5000; // 5 seconds
page.onResourceTimeout = function(e) {
console.log(e.errorCode); // it'll probably be 408
console.log(e.errorString); // it'll probably be 'Network timeout on resource'
console.log(e.url); // the url whose request timed out
phantom.exit(1);
};

page.open('http://...', function (status) {
...
}

不幸的是,这些选项目前文献很少。我必须遍历GitHub discussionsPhantomJS source code才能找到它们。

关于phantomjs - phantomJS网页超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com