为什么对于相同的URL(page.open(url)),收到的资源如此频繁地更改

时间:2019-02-15 07:51:41

标签: javascript phantomjs

我目前正在努力获取/废弃在请求URL时收到的所有图像。

我面临的问题是,经过几次尝试后响应发生了变化,或者即使对于使用phantomjs的相同URL,响应也非常不一致。

我曾多次尝试在代码中的不同位置清除缓存,但请求编号似乎不同。

o / p 第一次调用URL 来自服务器的19张图像和49条响应总计

第二次通话 来自服务器的14张图像和48条响应

第三个电话 来自服务器的14张图像和38条响应

Output for execution twice

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');
        }       
    }
};

我至少要对图像获得一致的响应,我很困惑幻像如何在第二次尝试时缓存此类资源。

0 个答案:

没有答案