3 votes

Casper --proxy ne fonctionne pas

Voici mon code pour vérifier l'adresse IP en utilisant http://whatismyipaddress.com/proxy-check

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();  

});

J'ai tapé casperjs --proxy="xxx.xxx.xxx.xxx:80" proxy.js Mais la capture d'écran est exactement l'adresse IP de ma machine.

Alors comment savoir si le proxy est mauvais ou si quelque chose ne va pas dans mon code ou ma ligne de commande ?

5voto

Hemerson Varela Points 1890

Si vous voulez tester si casperjs utilise avec succès le serveur proxy, vous pouvez utiliser le test script suivant. Il fait une requête à whatismyip.com et affiche l'adresse IP utilisée par casperjs.

//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();
});

Le résultat :

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

4voto

simonemainardi Points 415

Un casperjs script plus court utilisant http://ip-addr.es/

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();

En supposant que vous avez sauvegardé le script précédent en tant que whatismyip.js, et que vous avez un proxy SOCKSv5 écoutant sur le port 8000 de localhost, alors vous pouvez vérifier si casperjs utilise actuellement un proxy comme :

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

1voto

Hemerson Varela Points 1890

J'ai exécuté votre code et il fonctionne bien pour moi.

Exécution du script sans proxy.

casperjs proxy.js

img1

Exécution du script avec proxy.

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

img2

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X