Sam & Max: Python, Django, Git et du cul » jar http://sametmax.com Deux développeurs en vadrouille qui se sortent les doigts du code Wed, 05 Feb 2014 14:20:37 +0000 en hourly 1 http://wordpress.org/?v=3.3.1 Simuler un cookie avec Mechanize en python http://sametmax.com/simuler-un-cookie-avec-mechanize-en-python/ http://sametmax.com/simuler-un-cookie-avec-mechanize-en-python/#comments Sun, 20 May 2012 19:46:51 +0000 Max http://sametmax.com/?p=667 Il peut arriver que l’on ai besoin de simuler la présence d’un cookie lors de l’exploration d’un site avec Mechanize .
Un exemple tout bête l’autre jour j’essayais de me connecter à un site qui demandait une vérif d’âge, impossible de simuler le click sur “ENTER” car le bouton était géré par Jquery (et Mechanize ne fait pas de js).
Après quelques debug je me suis aperçu que le site stockait dans un cookie la confirmation d’âge sous la forme “age_verified”, valeur 1.

il suffisait donc d’avoir ce cookie et le site nous laissait tranquille.
Avec Mechanize il est possible d’ajouter un cookie dans son cookie jar, voici comment:

import mechanize
 
# Browser use mechanize
br = mechanize.Browser()
 
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
 
# add a cookie to cookie jar
cj.set_cookie(cookielib.Cookie(0, 'age_verified', '1', '80', False, 'www.nom_de_domaine.com', True, False, '/', True, False, None, False, None, None, None))
 
# Browser options
br.set_handle_redirect(True)

Où:
age_verified : SID du cookie
1: valeur
80: port
www.nom_de_domaine.com : le nom de domaine du site auquel le cookie appartient
/: path du cookie

Un peu plus sur les options:

cookielib.Cookie(version=0, name='SID', value=self._sid, port=None, port_specified=False, domain='.google.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires='1600000000', discard=False, comment=None, comment_url=None, rest={})

Quelques liens:
http://nullege.com/codes/search/cookielib.Cookie
http://docs.python.org/library/cookielib.html
http://wwwsearch.sourceforge.net/mechanize/hints.html

flattr this!

]]> http://sametmax.com/simuler-un-cookie-avec-mechanize-en-python/feed/ 0