我目前正在努力获取/废弃在请求URL时收到的所有图像。
我面临的问题是,经过几次尝试后响应发生了变化,或者即使对于使用phantomjs的相同URL,响应也非常不一致。
我曾多次尝试在代码中的不同位置清除缓存,但请求编号似乎不同。
o / p 第一次调用URL 来自服务器的19张图像和49条响应总计
第二次通话 来自服务器的14张图像和48条响应
第三个电话 来自服务器的14张图像和38条响应
phantomjs-2.1.1-windows 使用phantomjs命令运行Java脚本代码
我对Java语言非常陌生,我一直努力撰写以下内容
var page = require('webpage').create();
var fs = require('fs');
var url = "https://..........";
page.settings.clearMemoryCaches = true;
page.clearMemoryCache();
page.clearCookies();
page.viewportSize = {width: 1280, height: 1024};
var imageCounter = 0;
var responseCounter = 0;
page.open(url, function (status) {
console.log(status + '*/*/*/*/*/*/**/*/*/*/*/*/*/*/*/*/*/*/*/*/')
if(status=='success'){
console.log('The entire page is loaded.............################');
console.log('\n' + imageCounter + '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n');
console.log('\n' + responseCounter + '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n');
imageCounter = 0;
page.clearMemoryCache();
page.clearCookies();
page.close();
phantom.exit();
}
});
page.onResourceReceived = function(response) {
if(response.stage == "start"){
responseCounter++;
var respType = response.contentType;
if(respType.indexOf("image")==0){
imageCounter++;
//console.log('Content-Type : ' + response.contentType)
//console.log('Status : ' + response.status)
//console.log('Image Size in byte : ' + response.bodySize)
//console.log('Image Url : ' + response.url)
//console.log('\n');
console.log(imageCounter + '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n');
}
}
};
我至少要对图像获得一致的响应,我很困惑幻像如何在第二次尝试时缓存此类资源。