Хорошо, документация libcurl гласит:
CURLOPT_COOKIEFILE
Дан пустой или несуществующий файл или передана пустая строка (""), эта опция активирует куки для этой ручки скручивания, заставляя ее понимать и анализировать полученные куки, а затем использовать совпадающие куки в будущих запросах.
Только что попробовал сам, и он работает блестяще, просто используйте ту же самую локонobject.
Пример
import pycurl
curl = pycurl.Curl()
# Turn on cookies
curl.setopt(pycurl.COOKIEFILE, "")
# Login
curl.setopt(pycurl.URL, "http://www.example.com/login.php")
curl.setopt(pycurl.POST, 1)
curl.setopt(pycurl.HTTPPOST, [('user', 'myuser'), ('pass', 'mypass'), ('submit', 'login')])
curl.perform()
# Now let's get us some members only page
curl.setopt(pycurl.POST, 0)
curl.setopt(pycurl.URL, "http://www.example.com/members_only.php")
curl.perform()
Я пропустил весь ответ StringIO, чтобы мы могли оставаться в теме.