Belki cookielib.CookieJar kullanmak size yardımcı olabilir. Örneğin, form içeren bir sayfaya gönderi gönderirken:
import urllib2
import urllib
from cookielib import CookieJar
cj = CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
formdata = { "username" : username, "password": password, "form-id" : "1234" }
data_encoded = urllib.urlencode(formdata)
response = opener.open("https://page.com/login.php", data_encoded)
content = response.read()
DÜZENLE:
Piotr'ın yorumundan sonra biraz ayrıntıya gireceğim. Dokümanlardan:
CookieJar sınıfı, HTTP tanımlama bilgilerini depolar. Tanımlama bilgilerini HTTP isteklerinden çıkarır ve bunları HTTP yanıtlarında döndürür. CookieJar örnekleri, gerektiğinde içerilen tanımlama bilgilerini otomatik olarak sona erdirir. Alt sınıflar ayrıca bir dosyadan veya veritabanından tanımlama bilgilerini depolamak ve almaktan sorumludur.
Dolayısıyla, CookieJar
örneğinizle ne talep ederseniz edin , tüm çerezler otomatik olarak işlenir. Tarayıcınızın yaptığı gibi :)
Yalnızca kendi deneyimlerime dayanarak konuşabilirim ve çerezler için% 99 kullanım durumum bir çerez almak ve daha sonra bu oturumdaki tüm sonraki isteklerle birlikte göndermemdir. Yukarıdaki kod tam da bunu ele alıyor ve bunu şeffaf bir şekilde yapıyor.
cookievals
varsa kullanınopener.addheaders.append(('Cookie', "; ".join('%s=%s' % (k,v) for k,v in cookievals.items())))
.