[Tutor] Cookies and authorization - urllib2 vs urllib
D. Hartley
denise.hartley at gmail.com
Thu Jun 23 22:59:07 CEST 2005
>From Christian:
> Try subclassing urllib.FancyURLopener and overriding the
> prompt_user_passwd() method. That should get you what you need :-)
Well, I used urllib.FancyURLopener, and can open and look at the url, like this:
import urllib
opener2 = urllib.FancyURLopener({})
f = opener2.open("http://www.pythonchallenge.com/pc/return/romance.html")
f.read()
..but to get at the cookies, I need to use urllib2.build_opener
instead of urllib.FancyURLopener so that I can have access to
urllib2.HTTPCookieProcessor, which does not seem to be an option in
the regular urllib module? Sorry if this seems like a dense question,
I have little-to-no experience with cookies (and very little with
urllib itself), so the examples sometimes leave me hanging!
Does anyone know a way to use an opener (like that above from urllib2)
that can process cookies AND can pass in a user/pass (like
FancyURLopener from urllib)? I'm not having much luck trying to do
both things at once!
Thanks,
Denise
P.S. Kent - thank you for the helpful tutorials on authentication,
they really cleared up the process a great deal. The only problem is:
When I create an opener to process the cookies, it looks like this:
opener =
urllib2.build_opener(urllib2.HTTPCookieProcessor(myjar))
..where myjar is cookielib.CookieJar()
But in the examples for authentication, when I create the opener:
opener = urllib2.build_opener(authhandler)
..where authhandler is urllib2.HTTPBasicAuthHandler(passwordmanager)
So both use build_opener, but the thing I pass in, from what I am
looking at so far, has to be a cookie processor OR an authenticator.
How can I do both at once?
More information about the Tutor
mailing list