HTTP 407 CasperJS通过企业代理

时间:2015-11-27 07:53:43

标签: javascript proxy phantomjs casperjs

我正在尝试使用casperjs来访问creditkarma.com(它没有被防火墙阻止)。但我一直收到407错误和一个页面说我需要提供用户名和密码,没有形式只是一个错误。我试过了http://username:password@example.com。我也试过--proxy with --proxy-auth我也试过发送头文件。

casper.options.pageSettings = {
    customHeaders:{
        'Authorization':'Basic '+btoa('myUserName:myPassword')
    }
}

该命令正在通过windows命令提示符运行,所以我也设置了HTTP_PROXY。我已经花了几个小时在这上面,似乎无法弄清楚为什么这不起作用。有没有人有我可以尝试的其他想法?

1 个答案:

答案 0 :(得分:2)

根据407的回应来判断 1.使用代理 2.提供代理授权。

在CasperJS(和PhantomJS)中,您可以:

var val = 'val'; var connect_clients = []; connect_clients.push({ 'a': val }); function lookup(keyName) { var i; for ( i = 0; i < connect_clients.length; i++) { var keys = Object.keys(connect_clients[i]); if(keys.indexOf(keyName) !== -1) { return true; } } return false; } console.log(lookup('a'));

此外,看到目标站点仅使用https协议,您最好在参数列表中包含指令以防止ssl错误。

casperjs --proxy=192.168.0.100:8080 --proxy-auth=user:pass ck.js

如果需要NTLM授权,它在版本2.0.0中出现在PhantomJS中,但CasperJS还不支持该版本。您可以启用本地NTLM代理来绕过该限制,仍然使用CasperJS,如下面的答案所示:cntlm proxy with phantomjs