2010-09-02 20 views
0

Je suis scripting en python pour une automatisation web. Je sais que je ne peux pas automatiser les captchas mais voici ce que je veux faire:Existe-t-il un moyen de sauvegarder une image captcha et de l'afficher plus tard en python?

Je veux automatiser tout ce que je peux jusqu'à captcha. Quand j'ouvre la page (en utilisant urllib2) et que je l'analyse pour trouver qu'elle contient un captcha, je veux ouvrir le captcha en utilisant Tkinter. Maintenant, je sais que je vais d'abord enregistrer l'image sur mon disque dur, puis l'ouvrir mais il y a un problème avant cela. L'image captcha qui est à l'écran n'est pas directement dans la source. Il y a une variable dans la source, dans un javascript, qui pointe vers une autre page qui a le lien vers l'image, MAIS si vous chargez cette page du milieu, l'image captcha pour ce lien change, donc l'image associée à cette variable javascript est n'est plus valide. Il peut être impossible de rassembler l'image en utilisant cette méthode, alors s'il vous plaît éclairer moi si vous avez des idées à ce sujet. Maintenant, si j'utilise firebug pour charger la page, il y a un "GET" qui est un lien direct vers l'image Captcha actuelle que je vois, et je me demande s'il y a de toute façon pour faire python ou ullib2 les "GET" qui se passent quand une page est chargée, parce que si c'était possible, ce serait simple.

Faites-moi savoir si vous avez des suggestions.

+0

"Je sais que je ne peux pas automatiser les captchas" [Says who] (http://en.wikipedia.org/wiki/CAPTCHA#Circumvention)? – NullUserException

+0

élaboré? peut-être que quelqu'un peut. BUt je ne pense pas que je peux. – Alex

Répondre

2

Bien sûr, le captcha est servi par une page qui servira un nouveau à chaque fois (si elle a été répété, puis une fois qu'il a été résolu pour un userid faux, un spammeur pourrait faire automatiquement un million!). Je pense que vous avez besoin d'une fonctionnalité "capture d'écran" pour capturer l'image que vous voulez - il n'y a pas moyen d'invoquer une telle fonctionnalité, mais chaque plateforme (ou gestionnaire de bureau dans le cas de Linux, BSD, etc.) a tendance à . Ou, vous pourrait automatiser le navigateur (par exemple via SeleniumRC) pour "capture d'écran" (par exemple "imprimer au format PDF") les choses au bon moment. (Je crois que ce que vous voyez dans firebug peut vous induire en erreur car est "" montrant un instantané "... juste au niveau source html ou DOM plutôt qu'à un niveau écran/bitmap).

+0

Ainsi, ive s'est rendu compte qu'il est possible de le faire de la façon suivante: Lorsque python charge l'URL, il ne charge que la source, et la commande javascript pour charger la page de challenge n'est pas exécutée. Donc, je crois que je peux charger la page de défi et il la considérera comme la première charge, et ainsi l'image vers laquelle elle pointe serait valide. Tout semble fonctionner, sauf que dans la requête POST, il y a quelque chose à faire avec "psig" que mon message est manquant, et je ne peux pas comprendre d'où il vient. – Alex