Pregunta

Estoy aprendiendo a usar mechanize , un módulo de Python para automatizar la interacción con sitios web.

Una característica es el manejo automatizado de cookies. Quisiera volcar las cookies de una instancia de mechanize.Browser para propósitos de depuración, pero parece que no puedo resolver esto por mí mismo.

¿Fue útil?

Solución


>>> from mechanize import Browser
>>> b = Browser()
>>> b._ua_handlers['_cookies'].cookiejar
mechanize._clientcookie.CookieJar[]
>>> b.open('http://google.com')
response_seek_wrapper at 0xb7a922ccL whose wrapped object = closeable_response at 0xb7aa070cL whose fp = socket._fileobject object at 0xb7a94224
>>>
>>> b._ua_handlers['_cookies'].cookiejar
mechanize._clientcookie.CookieJar[Cookie(version=0, name='PREF', value='ID=57d545c229b4cf3f:TM=1236081634:LM=1236081634:S=p001WJMOr-V8Rlvi', port=None, port_specified=False, domain='.google.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1299153634, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='PREF', value='ID=20534d80a5ccf2ea:TM=1236081635:LM=1236081635:S=jW3UotZ0dg8sv6mf', port=None, port_specified=False, domain='.google.com.ua', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1299153635, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]
>>>                           

Otros consejos

Solo imprime la instancia de CookieJar

# Browser
br = mechanize.Browser()

# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Dump
print cj

La respuesta de Mykolas casi me dio lo que estaba buscando. Estaba buscando cómo guardar la cookie en un archivo. Ya que esta respuesta le da margen para volcar la cookie en un archivo, tal vez sea útil para otras personas que vienen aquí en busca de eso. Para guardar la cookie en un archivo:

br._ua_handlers['_cookies'].cookiejar.save("cookie.txt", ignore_discard=True, ignore_expires=True)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top