first attempt - myjar has no attribute 'value' second attempt -
re: myjar = cookielib.CookieJar() for cookie in myjar: print cookie.value In this case the above code should print a single 'B'. This does work. However, it only ever returns me one value. For instance, the first three are BZh. My code is: def urlsearch(times): x = 12345 count = 0 myjar = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(myjar)) while count < times: param = urllib.urlencode({'busynothing': x}) z = opener.open("http://www.pythonchallenge.com/pc/def/linkedlist.php?%s" % param) text = z.read() lister = string.split(text) x = lister[-1] count = count + 1 return myjar Now, if I'm using the jar the way I think I am, I'm creating it outside the while loop, and then when I use the opener within the while loop (to open each successive url), I should be adding a new cookie, right? so that I have a jar full of multiple cookies? But it's acting like it's just *replacing* the old cookie with the new one, because when I'm done with that function, I do: jar6 = urlsearch(2) for cookie in jar6: print cookie.value (2 is number of times) If I do urlsearch(1), I get B for the value (as expected). If I do urlsearch(2), I get Z (and only Z. Not BZ). Ditto urlsearch(3), I get h (and only h, not BZh). Is it truly replacing the old cookie with the new one? That isn't what I want to do, and not how I would think a cookie jar would work. Am I setting it up incorrectly? > > Yes, whenever the documentation talks about something being "iterable", > > they really mean that we can use a for loop across it. This seems perfectly rational to me. However, having the "cookie.value" part used in an actual example would have been very helpful. > > I wonder why; I haven't been able to figure out a good reason for this > > kind of interface. Are cookie jars files known to be large? I assumed that a cookie jar would work kind of like a list. I could add new cookies to it at each step of my while loop, and then iterate over the "list" of cookies to get out the pieces of info I wanted. I'm hoping this is correct, because that's how I *want* to use this cookie jar! > This only pushes the mystery one step back, though - the attribute of the > Cookie that is recursively iterated is called 'item', but the Cookie class > defined in cookielib has no attribute 'item'. Yeah, it was kind of confusing why it was called an "item" in one version and a "value" in another. But then, most things are confusing to me ;) > Take a look at cookielib.deepvalues() if you are curious. I'm looking at the cookielib page - why can't I find .deepvalues()? It's funny to me, but some of these documentation pages I find exactly what I'm looking for, including examples, and can immediately put it to practical use in my code. Some of the libraries I read a hundred times and can never seem to find what I'm looking for. In any case, if anyone has any ideas why my cookiejar isn't collecting a bunch of cookies but instead only returning the last one, I'd be very grateful! Thanks again for all your help and suggestions. ~Denise _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor