2009-10-03 10 views
3

Il existe un objet Python mechanize avec un formulaire avec presque toutes les valeurs définies, mais pas encore soumises. Maintenant, je veux aller chercher une autre page en utilisant les cookies de l'instance de mécanisation, mais sans réinitialiser la page, les formulaires et ainsi de suite, par exemple. de sorte que les valeurs restent définies (j'ai juste besoin d'obtenir la chaîne de corps d'une autre page, rien d'autre). Alors, est-il possible de:Comment obtenir une page http en utilisant des cookies mécanisés?

  1. Dites-mécaniser pas réinitialiser la page (peut-être, par le biais UserAgentBase)?
  2. Faire urllib2 utiliser le cookie's cookie jar? NB: urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar) ne fonctionne pas
  3. Toute autre façon de passer le cookie à urllib?

Répondre

5

Et la bonne réponse:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar)) 
opener.open(imgurl) 
2

Aucune idée si cela fonctionnera, mais pourquoi ne pas essayer deepcopying l'instance mécaniser, par exemple

from copy import deepcopy 
br = Browser() 
br.open("http://www.example.com/") 
# Make a copy for doing other stuff with 
br2 = deepcopy(br) 
# Do stuff with br2 
# Now do stuff with br 
+0

peut-être, mais je cherchais une solution plus efficace – Fluffy

2

Quelques idées sauvages:

  • Fetch la deuxième page avant de remplir la forme?
  • Ou récupérer la nouvelle page, puis goBack()? Bien que peut-être cela va réinitialiser les valeurs.
+0

Le premier n'est pas possible, malheureusement, va essayer le second – Fluffy

+0

No way, remet à zéro ouvert tout :( – Fluffy

Questions connexes