Phantomjs cookie身份验证无法捕获和打印网页

时间:2014-08-12 06:35:45

标签: cookies phantomjs

我正在使用phantomjs来打印网页并创建一个pdf。由于UI在查找数据之前需要用户的身份验证,因此我使用持久性cookie来对用户进行身份验证。但不知何故,我每次都在创建的PDF中登录屏幕。我观察到用户成功进行了身份验证,并且结果的网页显示了正确的结果(显示正确数据数组的调试日志),但在打印网页或创建PDF时,它以某种方式获取登录屏幕。有时我发现在获取报告数据时我的PHP代码中有两个不同的cookie,并且在javascript'document.cookies'中。

请告诉我如何解决此问题。

var page = require('webpage').create(), 
    system = require('system'), t, address; 

page.settings.userName = 'myusername'; 
page.settings.password = 'mypassword'; 

if (system.args.length === 1) {
    console.log('Usage: scrape.js '); 
    phantom.exit(); 
} else { 
    t = Date.now(); 
    address = system.args[1]; 

    page.open(address, function (status) { 
        if (status !== 'success') {
            console.log('FAIL to load the address'); 
        } else { 
            t = Date.now() - t; 
            var title = page.evaluate(function() { return document.title;})
            console.log('Page title is ' + title);
            console.log('Loading time ' + t + ' msec'); 
        } 
        phantom.exit(); 
    });
}

另一段发送cookie文件的代码

bin/phantomjs --cookies-file=/tmp/cookies.txt --disk-cache=yes --ignore-ssl-errors=yes /phantomjs/pdf.js 'username' 'params' '/tmp/phantomjs_file' /tmp/phantom_pdf.pdf

phantomjs --cookies-file=cookies.txt examples/rasterize.js localhost:7000/reports /tmp/report.pdf

0 个答案:

没有答案