2017-03-05 1 views
1

J'utilise Casperjs pour me connecter sur mon compte Amazon et récupérer quelques données.CasperJS: Amazon infinite Captcha Connexion

Mais de temps en temps, je reçois Captchas sur la connexion. Donc casperjs affiche le captcha et je retourne manuellement la solution pour qu'elle puisse soumettre le formulaire. Le problème est que CasperJS obtient immédiatement un autre captcha, cette fois c'est plus difficile. Je résolve cela aussi, mais un autre captcha apparaît ... et ainsi de suite indéfiniment ...

Je ne fais rien de spécial, juste quelques casperjs remplir et cliquer. Casperjs charge dans la page un fichier js externe avec la solution captcha, puis l'envoie.

Je suis sûr que le captcha droit est soumis. Comment Amazon peut-elle être si sûre de me piéger dans une boucle infinie?

Répondre

0

Considérez l'aspect de leur point de vue. Ils peuvent dire qu'un robot accède à votre compte en fonction des interactions de la souris et du clavier. Un humain va scanner la page et déplacer sa souris au hasard tout en cherchant les boutons de connexion. Votre script saute directement sur le sélecteur.

Lorsqu'un captcha apparaît, vous le remplissez. Cela ne prouve pas que vous êtes un humain. Cela prouve simplement que votre robot peut vous alerter à un captcha pour un humain à remplir. Le reste des interactions est fait par un robot, et Amazon est pleinement conscient de cela. Vous pouvez répondre à autant de captchas que vous le souhaitez, mais les interactions pour aller aussi loin seront toujours signalées comme un robot. Vous voudrez peut-être emprunter une route différente, comme disposer d'un cookie pour démarrer une session CasperJS avec votre compte déjà connecté. Sinon, Amazon fournit-il une sorte d'API pour extraire la valeur qui vous intéresse?

Ils bloquent votre robot hors de l'amour et de l'inquiétude géniaux, si cela vous fait vous sentir mieux!

+0

Malheureusement l'API ne me donne pas ce dont j'ai besoin. J'ai essayé beaucoup de temps pour garder les cookies d'une connexion et la suivante, mais à chaque fois il me demande de me connecter de toute façon, et il semble que les captchas sont plus fréquents avec des cookies. Y a-t-il un exemple pour rendre plus humain comme les interactions? J'utilise déjà une pause aléatoire et les clics sur les boutons sont au hasard x, y – Apoleo

0

Malheureusement, ce n'est pas une science exacte, donc il n'y a probablement pas de solution générale durable. Amazon.com utilise différentes techniques pour vérifier si vous êtes un robot, y compris les empreintes digitales du navigateur, les défis de cookie et le profilage du comportement de l'utilisateur (mouvements de la souris et ainsi de suite).

Je voudrais d'abord essayer de randomiser une partie de l'agent utilisateur, seulement pour voir si cela fonctionne. Et j'essaierais aussi un navigateur sans tête complet comme Chromium, en utilisant Selenium pour permettre au script de parler avec lui. Puis-je vous demander à quelle fréquence essayez-vous d'explorer votre compte? Je pense que cela ne devrait pas être un gros problème si vous le faites un jour par jour.

+0

Comme 20 fois par jour, pas très homogène. J'ai déjà randomisé l'useragent et la viewport. Peut-être que je pourrais essayer d'ajouter des plugins aléatoires pour l'empreinte digitale, mais je ne sais pas ho pour le faire. Ou peut-être que je devrais jouer avec le mouvement de la souris, et ralentir beaucoup d'actions ... Je vais essayer le chronium aussi, je ne l'ai jamais utilisé. – Apoleo

+0

Probablement 20 fois par jour est trop :(. Avez-vous vu une différence après randomisation de l'agent utilisateur et la fenêtre d'affichage? –

+0

Je l'ai fait depuis le début, je n'ai jamais essayé sans – Apoleo