2009-02-08 12 views
10

Come posso accettare i cookie in uno script Python?Accetta i cookie in Python

+0

Forse dovresti essere più specifico. Cosa stai cercando di realizzare? Quale struttura stai usando, se esiste? –

risposta

1

Credo che tu intenda avere uno script Python che tenta di parlare HTTP. Ti suggerisco di utilizzare una libreria di alto livello che gestisce automaticamente i cookie. pycurl, meccanizza, twill - scegli tu.

Per Nikhil Chelliah:

non vedo ciò che non è chiaro qui.

Accettando un cookie si verifica sul lato client. Il server può impostare un cookie.

+1

Un server può anche ricevere cookie dal client. Inoltre, "accettare" potrebbe essere solo un termine valido per il cliente. –

+0

+ per menzionare meccanize – Alex

0

C'è la libreria cookielib. È inoltre possibile implementare la propria politica di memorizzazione e policy dei cookie, i cookie si trovano nell'intestazione del set-cookie della risposta (Set-Cookie: nome = valore), quindi si invia il retro a un server in una o più intestazioni Cookie nel richiesta (Cookie: nome = valore).

1

Non è chiaro se si desidera una soluzione lato client o lato server.

Per il lato client, cookielib funzionerà correttamente. This answer e alcuni tutorial Web offrono spiegazioni più approfondite.

Se si tratta di un problema lato server, è necessario utilizzare un framework che si occupa di tutto lo standard. Mi piace molto il modo in cui sono gestiti da e web.py, ma l'API è piuttosto semplice in qualsiasi libreria.

18

Prova questo:

import urllib2 
import cookielib 

jar = cookielib.FileCookieJar("cookies") 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 

print "Currently have %d cookies" % len(jar) 
print "Getting page" 
response = opener.open("http://google.com") 
print response.headers 
print "Got page" 
print "Currently have %d cookies" % len(jar) 
print jar 

Dovrebbe stampare

Currently have 0 cookies 
... 
Currently have 2 cookies 

(Google imposta sempre un biscotto). Non ne hai davvero bisogno a meno che tu non voglia salvare i tuoi cookies su disco e usarli in seguito. Si dovrebbe trovare che

urllib2.build_opener(HTTPCookieProcessor).open(url) 

Si prende cura della maggior parte di ciò che si desidera.

Maggiori informazioni qui:

4

Il modo più semplice è quello di utilizzare requests biblioteca.

import requests 
url = 'http://www.google.com/doodles/' 
r = requests.get(url) 
print r.cookies 
Problemi correlati