Python: come scaricare i cookie di un'istanza meccanizzata.
-
03-07-2019 - |
Domanda
Sto imparando come utilizzare meccanizzare , un modulo Python per automatizzare l'interazione con i siti Web.
Una caratteristica è la gestione automatizzata dei cookie. Vorrei scaricare i cookie da un'istanza mechanize.Browser
per scopi di debug, ma non riesco a capirlo da solo.
Soluzione
>>> 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)]
>>>
Altri suggerimenti
Basta stampare l'istanza di CookieJar
# Browser
br = mechanize.Browser()
# Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
# Dump
print cj
La risposta di Mykolas mi ha quasi dato quello che stavo cercando. Stavo cercando come salvare il cookie in un file. Poiché questa risposta dà margine al dumping del cookie in un file, forse sarà utile per le altre persone che vengono qui a cercarlo. Per salvare il cookie in un file:
br._ua_handlers['_cookies'].cookiejar.save("cookie.txt", ignore_discard=True, ignore_expires=True)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow