Phantomjs works but is very slow

后端 未结 3 661
無奈伤痛
無奈伤痛 2021-02-01 22:25

I am trying to take a screenshot of a webpage with PhantomJS. Specifically, I am using the example of capturing espn.com from this example. My code looks like this:

3条回答
  •  南笙
    南笙 (楼主)
    2021-02-01 23:20

    Well, in my case, the page was waiting for some GET requests and was not able to reach the requests' server and it kept waiting for long. I could only figure it out when i used the remote debugger option.

    phantomjs --remote-debugger-port=9000 loadspeed.js 
    

    and inside the loadspeed.js file add this below code:

    page.onResourceRequested = function (req) {
        console.log('requested: ' + JSON.stringify(req, undefined, 4));
    };
    
    page.onResourceReceived = function (res) {
        console.log('received: ' + JSON.stringify(res, undefined, 4));
    };
    

    and then loading localhost:9000 in any webkit browser (safari/chrome) and seeing the console logs where i could figure out it was waiting for some unreachable requests for a long time.

    TO BYPASS THIS - REDUCE THE TIMEOUT by adding below to the same loadspeed.js file:

    page.settings.resourceTimeout = 3000; //in milliseconds
    

    and things were very quick after that. Hope this helps

提交回复
热议问题