Casper --proxy不起作用

时间:2013-05-30 08:05:11

标签: node.js proxy web-scraping phantomjs casperjs

以下是使用http://whatismyipaddress.com/proxy-check

检查IP地址的代码
var casper = require("casper").create(),
    utils = require('utils');

casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0');

casper.start("http://whatismyipaddress.com/proxy-check", function() {
  this.capture('0.png');
});

casper.on('remote.message', function(msg) {
    this.echo('Remote: ' + msg);
})

casper.run(function() {
  this.echo('End');

  //finish execution script 
  this.exit();  

});

我输入了casperjs --proxy="xxx.xxx.xxx.xxx:80" proxy.js 但屏幕截图正是我机器上的IP地址。

那么我怎么知道代理是坏的还是我的代码或命令行中有什么问题?

3 个答案:

答案 0 :(得分:5)

如果要测试casperjs是否成功使用代理服务器,可以使用以下脚本测试。它向whatismyip.com发出请求并打印casperjs使用的IP地址。

//create casper object
var casper = require('casper').create();

casper.start('http://www.whatismyip.com/');

//to avoid 'Access Denied'  <!-- Error #1010 -->
//The owner of this website (www.whatismyip.com) has banned  
//your access based on your browser's signature (42c0a6c6-cl-ua-50). (Ref. 1010)
casper.userAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X)');

//Home Page
casper.then(function() {

    if(this.exists('div#greenip')){

        var element = this.evaluate(function() {
            //remove unnecessari nodes
            return jQuery('div#greenip').text().trim();
        });

        console.log(element);   
    }else{
        console.log("ACCESS_DENIED");   
    }    

});

casper.run(function() {

    //finish execution script 
    this.exit();
});

输出:

  

casperjs --proxy = XXX.XXX.XXX.XXX:60099 --proxy-auth = username:password proxy.js
XXX.XXX.XXX.XXX

答案 1 :(得分:4)

使用http://ip-addr.es/

的较短的casperjs脚本
var casper = require('casper').create();
var url = 'http://ip-addr.es/';

casper.start(url, function() {
    var js = this.evaluate(function() {
        return document; 
    }); 
    this.echo(js.all[0].outerText); 
});
casper.run();

假设您已将之前的脚本保存为whatismyip.js,并且您有一个SOCKSv5代理侦听localhost端口8000,那么您可以检查casperjs当前是否正在使用代理:

simone@tramontana:~$ casperjs  whatismyip.js 
93.[xx].[xx].226 # I've hidden a couple of bytes of my real IP ;)

simone@tramontana:~$ casperjs --proxy=127.0.0.1:8000 --proxy-type=socks5 whatismyip.js 
46.23.73.4

答案 2 :(得分:1)

我运行了你的代码,它对我来说很好用

运行没有代理的脚本。

  

casperjs proxy.js

img1 http://i41.tinypic.com/2qn9rhv.png

使用代理运行脚本。

  

casperjs --proxy = 208.72.118.16:60099 --proxy-auth = username:password proxy.js

img2 http://i40.tinypic.com/2ih4gty.png