2009-03-03 15 views
11

Web siteleriyle etkileşimi otomatikleştirmek için bir Python modülü olan mechanize'u kullanmayı öğreniyorum.Python: Nasıl bir mechanize çerezleri dökümü.

Bir özellik, tanımlama bilgilerinin otomatik işlemesidir. Hata ayıklama amacıyla mechanize.Browser örneğinden çerezleri dökmek istiyorum, ancak bunu kendim göremiyorum.

cevap

22
 

>>> 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)] 
>>>       
 
1

Mykolas'ın cevabı neredeyse aradığım şeyi bana verdi. Kurabayı bir dosyaya nasıl kaydedeceğimi arıyordum. Bu cevap çerezin bir dosyaya dökülmesine marj verdiğinden, belki de buraya gelen diğer insanlar için yararlı olacaktır.

br._ua_handlers['_cookies'].cookiejar.save("cookie.txt", ignore_discard=True, ignore_expires=True) 
+1

cookiejar örneği – Cmag

4

Sadece

# Browser 
br = mechanize.Browser() 

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

# Dump 
print cj 
+0

Sorunuz nedir 'tasarruf' hayır özelliği vardır cookiejar Örneği yazdırmak: bir dosyaya çerez kaydetmek için? Ne problemin var? –

+0

Bu cevap daha uygun. Kabul edilen yanıtta, Browser._ua_handlers'daki '_ 'öneki, public API'yi mekanize etmenin bir parçası olmadığını öne sürmektedir. – Shakkhar