Hi, <br>
<br>
Denise, if you're handling cookies client side, then this is how to do
it (code snippets taken from
<a href="http://www.voidspace.org.uk/python/articles/cookielib.shtml">http://www.voidspace.org.uk/python/articles/cookielib.shtml</a> as I'm at
work.)<br>
<br>
<span class="pykeyword">import</span> <span class="pytext">os</span><span class="pyoperator">.</span><span class="pytext">path</span><br>
<span class="pykeyword">import</span> <span class="pytext">urllib2<br>
</span><span class="pykeyword">import</span> <span class="pytext">cookielib<br>
<br>
<br>
</span><span class="pytext">COOKIEFILE</span> <span class="pyoperator">=</span> <span class="pystring">'cookies.lwp'</span><br>

<span class="pycomment"># the path and filename to save your cookies in<br>
</span><span class="pytext"><br>
urlopen</span> <span class="pyoperator">=</span> <span class="pytext">urllib2</span><span class="pyoperator">.</span><span class="pytext">urlopen</span><br>
<span class="pytext">Request</span> <span class="pyoperator">=</span> <span class="pytext">urllib2</span><span class="pyoperator">.</span><span class="pytext">Request</span><br>
<span class="pytext">cj</span> <span class="pyoperator">=</span> <span class="pytext">cookielib</span><span class="pyoperator">.</span><span class="pytext">LWPCookieJar</span><span class="pyoperator">(</span><span class="pyoperator">
)</span><br>
&nbsp;<span class="pycomment"># This is a subclass of FileCookieJar<br>&nbsp;</span><span class="pycomment"># that has useful load and save methods<br>
<br>
</span><span class="pykeyword">if</span> <span class="pytext">os</span><span class="pyoperator">.</span><span class="pytext">path</span><span class="pyoperator">.</span><span class="pytext">isfile</span><span class="pyoperator">
(</span><span class="pytext">COOKIEFILE</span><span class="pyoperator">)</span><span class="pyoperator">:</span><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span class="pycomment"># if we have a cookie file already saved<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="pycomment"># then load the cookies into the Cookie Jar<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="pytext">cj</span><span class="pyoperator">
.</span><span class="pytext">load</span><span class="pyoperator">(</span><span class="pytext">COOKIEFILE</span><span class="pyoperator">)<br>
<br>
</span><span class="pytext">opener</span> <span class="pyoperator">=</span> <span class="pytext">urllib2</span><span class="pyoperator">.</span><span class="pytext">build_opener</span><span class="pyoperator">(</span><span class="pytext">
urllib2</span><span class="pyoperator">.</span><span class="pytext">HTTPCookieProcessor</span><span class="pyoperator">(</span><span class="pytext">cj</span><span class="pyoperator">)</span><span class="pyoperator">)</span>
<br>
<span class="pytext">urllib2</span><span class="pyoperator">.</span><span class="pytext">install_opener</span><span class="pyoperator">(</span><span class="pytext">opener</span><span class="pyoperator">)</span><br>
<span class="pyoperator"><br>
#The above two lines initialise a opener which can handle cookies, and will use our cookie jar<br>
<br>
</span><span class="pytext">theurl</span> <span class="pyoperator">=</span> <span class="pystring">'<a href="http://www.google.co.uk/search?hl=en&amp;ie=UTF-8&amp;q=voidspace&amp;meta=">http://www.google.co.uk/search?hl=en&amp;ie=UTF-8&amp;q=voidspace&amp;meta=
</a>'</span><br>

<span class="pycomment"># an example url that sets a cookie,<br>
</span><span class="pycomment"># try different urls here and see the cookie collection you can make !<br>
</span><br>

<span class="pytext">txdata</span> <span class="pyoperator">=</span> <span class="pytext">None</span><br>

<span class="pycomment"># if we were making a POST type request,<br>
</span><span class="pycomment"># we could encode a dictionary of values here,<br>
</span><span class="pycomment"># using urllib.urlencode(somedict)<br>
</span><br>

<span class="pytext">txheaders</span> <span class="pyoperator">=</span>&nbsp;&nbsp;<span class="pyoperator">{</span><span class="pystring">'User-agent'</span> <span class="pyoperator">:</span> <span class="pystring">'Mozilla/4.0 (compatible; MSIE 
5.5; Windows NT)'</span><span class="pyoperator">}</span><br>

<span class="pycomment"># fake a user agent, some websites (like google) don't like automated exploration<br>
</span><br>

<span class="pykeyword">try</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pytext">req</span> <span class="pyoperator">=</span> <span class="pytext">Request</span><span class="pyoperator">(</span><span class="pytext">theurl</span><span class="pyoperator">,</span> <span class="pytext">
txdata</span><span class="pyoperator">,</span> <span class="pytext">txheaders</span><span class="pyoperator">)</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pycomment"># create a request object<br>
</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pytext">handle</span> <span class="pyoperator">=</span> <span class="pytext">urlopen</span><span class="pyoperator">(</span><span class="pytext">req</span><span class="pyoperator">)</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pycomment"># and open it to return a handle on the url<br>
</span><br>

<span class="pykeyword">except</span> <span class="pytext">IOError</span><span class="pyoperator">,</span> <span class="pytext">e</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">'We failed to open &quot;%s&quot;.'</span> <span class="pyoperator">%</span> <span class="pytext">theurl</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">if</span> <span class="pytext">hasattr</span><span class="pyoperator">(</span><span class="pytext">e</span><span class="pyoperator">,</span> <span class="pystring">'code'</span><span class="pyoperator">
)</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">'We failed with error code - %s.'</span> <span class="pyoperator">%</span> <span class="pytext">e</span><span class="pyoperator">.</span><span class="pytext">
code</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">elif</span> <span class="pytext">hasattr</span><span class="pyoperator">(</span><span class="pytext">e</span><span class="pyoperator">,</span> <span class="pystring">'reason'</span><span class="pyoperator">
)</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">&quot;The error object has the following 'reason' attribute :&quot;</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pytext">e</span><span class="pyoperator">.</span><span class="pytext">reason</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span><span class="pyerror"> </span><span class="pyerror">&quot;</span><span class="pytext">This</span> <span class="pytext">usually</span> <span class="pytext">means</span> <span class="pytext">
the</span> <span class="pytext">server</span> <span class="pytext">doesn</span><span class="pystring">'t exist,'</span><span class="pyoperator">,</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">&quot;is down, or we don't have an internet connection.&quot;</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pytext">sys</span><span class="pyoperator">.</span><span class="pytext">exit</span><span class="pyoperator">(</span><span class="pyoperator">)</span><br>

<br>

<span class="pykeyword">else</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">'Here are the headers of the page :'</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pytext">handle</span><span class="pyoperator">.</span><span class="pytext">info</span><span class="pyoperator">(</span><span class="pyoperator">)</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pycomment"># handle.read() returns the page<br>
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="pycomment"># handle.geturl() returns the true url of the page fetched<br>
</span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="pycomment"># (in case urlopen has followed any redirects, which it sometimes does)<br>
</span><br>

<span class="pykeyword">print</span><br>

<span class="pykeyword">if</span> <span class="pytext">cj</span> <span class="pykeyword">is</span> <span class="pytext">None</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">&quot;We don't have a cookie library available - sorry.&quot;</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">&quot;I can't show you any cookies.&quot;</span><br>

<span class="pykeyword">else</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pystring">'These are the cookies we have received so far :'</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">for</span> <span class="pytext">index</span><span class="pyoperator">,</span> <span class="pytext">cookie</span> <span class="pykeyword">in</span> <span class="pytext">enumerate</span><span class="pyoperator">
(</span><span class="pytext">cj</span><span class="pyoperator">)</span><span class="pyoperator">:</span><br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="pykeyword">print</span> <span class="pytext">index</span><span class="pyoperator">,</span> <span class="pystring">'&nbsp;&nbsp;:&nbsp;&nbsp;'</span><span class="pyoperator">,</span> <span class="pytext">cookie</span><br>


&nbsp;&nbsp;&nbsp;&nbsp;<span class="pytext">cj</span><span class="pyoperator">.</span><span class="pytext">save</span><span class="pyoperator">(</span><span class="pytext">COOKIEFILE</span><span class="pyoperator">)</span>&nbsp; <br>
<br>
<br>
<br>
-----<br>
<br>
Phew! A bit of code, but that shows a simple usage(!) of it.<br>
<br>
Good luck.<br>
<br><div><span class="gmail_quote">On 7/5/05, <b class="gmail_sendername">Kent Johnson</b> &lt;<a href="mailto:kent37@tds.net">kent37@tds.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Danny Yoo wrote:<br>&gt; To make cookies, in the examples of the Cookie module will probably help<br>&gt; the most:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.python.org/doc/lib/cookie-example.html">http://www.python.org/doc/lib/cookie-example.html
</a><br>&gt;<br>&gt;&gt;From the documentation, it sounds like Cookie.SimpleCookie is what you're<br>&gt; looking for:<br><br>My
understanding is that the Cookie module is for server-side cookie
handling. cookielib.Cookie integrates with cookielib.CookieJar for
client-side cookie handling which is what Denise is looking for. Though
possibly I am missing something...<br><br>Kent<br><br>_______________________________________________<br>Tutor maillist&nbsp;&nbsp;-&nbsp;&nbsp;<a href="mailto:Tutor@python.org">Tutor@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/tutor">
http://mail.python.org/mailman/listinfo/tutor</a><br></blockquote></div><br><br><br>-- <br>'There is only one basic human right, and that is to do as you damn well please.<br>And with it comes the only basic human duty, to take the consequences.'