Connectez-vous sur Amazon avec CasperJS avec Captcha

J'utilise PhantomJs et CasperJs pour me connecter avec Amazon, ça marche bien, mais après plusieurs fois, l'application amazon donne Captcha et mon script échoue. Je ne sais pas comment manipuler le script de connexion s'il possède un code de capture. Voici mon code actuel qui fonctionne bien si aucun captcha.

var casper = require('casper').create(); var AMAZON_USER = 'amazon-username'; var AMAZON_PASS = 'amazone-password'; casper.start('https://www.amazon.com/gp/wallet', function () { this.echo('Loggin into amazon...'); var emailInput = 'input#ap_email'; var passInput = 'input#ap_password'; this.mouseEvent('click', emailInput, '15%', '48%'); this.sendKeys('input#ap_email', AMAZON_USER); this.wait(3000, function () { this.mouseEvent('click', passInput, '12%', '67%'); this.sendKeys('input#ap_password', AMAZON_PASS); this.mouseEvent('click', 'input#signInSubmit', '50%', '50%'); }); }); casper.then(function (e) { this.capture('amazon.png');//print screen shot after login }); casper.run(); 

Merci d'avance.

Amazon peut envisager différentes choses pour afficher le captcha. Voici mes observations.

J'ai rencontré deux types de captures amazoniennes.

  1. Captcha basé sur le navigateur (visible dans le côté PhantomJS. Ne sera pas visible si vous vous connectez via un navigateur manuellement).
  2. Captcha basé sur IP. La raison peut être trop de demandes. Le captcha sera visible si vous vous connectez via le navigateur manuellement.

Ne sait pas comment résoudre le deuxième problème. Essayez les suggestions ci-dessous pour résoudre le premier problème.

  1. phantomjs.exit() à la fin du script. Assurez-vous que la méthode de sortie sera invoquée toujours même lorsque l'exception s'est produite.
  2. Il semble PhantomJS ne pas effacer le cache entier à la sortie. Dans Ubuntu, il enregistre des données dans le répertoire ~/.local/share/Ofi Labs/PhantomJS/ . Ainsi, effacez les fichiers dans le répertoire avant d'exécuter le script.

Vous pouvez utiliser le service deathbycaptcha pour contourner le captcha.

Ils ont un prix très bon marché pour résoudre les captures.