[twill] Loading cookies (was Re: cookie client)
John J Lee
jjl at pobox.com
Thu Aug 3 17:33:08 PDT 2006
On Thu, 3 Aug 2006, John J Lee wrote:
> 2. Tell twill where to find your "cookie jar" with the "load_cookies"
If you don't have the original password, this is what you have to do, of
Unfortunately, it looks like twill doesn't support loading Firefox or
Internet Explorer cookies yet (it can load and save cookies, but only in a
special format not used by browsers). ClientCookie and mechanize can load
Firefox and IE cookies, however. I'll try and point you in the right
direction, but first: Are you on Windows? Which browser are you using?
Titus -- why not have twill's load_cookies load the IE cookies if you're
running on Windows and there's no cookie jar argument (by instantiating an
MSIECookieJar and using .load_from_registry())? That's the preferred way
to load IE cookies (always assuming that MSIECookieJar still works -- it
parses an undocumented MS file format...). If there's an argument, I
think twill should attempt to .load() using each class in turn --
LoadError tells you it's the wrong format for that class (MSIECookieJar,
MozillaCookieJar, LWPCookieJar -- order shouldn't matter). If you add
support for Firefox cookie saving, you should also add the warnings about
this from the mechanize docs (IIRC, that a running Firefox may clobber
your changes, and you should back up any cookie files that contain
important cookies). I think save_cookies without an argument should use
the filename and file format that were used on the previous load_cookies.
Finally, note MSIECookieJar does not support saving, and iteration won't
cause loading of cookies unless .delayload is true. The delayload thing
can be significant for MSIECookieJar because each cookie is in its own
little file (or something similar, I forget), so I suggest having
delayload=False until somebody asks for show_cookies, at which point you
should call .load_all_cookies() before iterating.
More information about the twill