トップ 一覧 検索 ヘルプ RSS ログイン

BugTrack-その他のメモ/43の変更点

-{{bugstate}}
+//{{bugstate}}
-
+ import os.path, urllib2
+ from urllib2 import urlopen, Request
+ COOKIEFILE = 'cookies.lwp'   # "cookiejar" file for cookie saving/reloading
+ # first try getting the best possible solution, cookielib:
+ try:
+     import cookielib
+ except ImportError:                 # no cookielib, try ClientCookie instead
+     cookielib = None
+     try:
+         import ClientCookie
+     except ImportError:             # nope, no cookies today
+         cj = None                   # so, in particular, no cookie jar
+     else:                           # using ClientCookie, prepare everything
+         urlopen = ClientCookie.urlopen
+         cj = ClientCookie.LWPCookieJar()
+         Request = ClientCookie.Request
+ else:                               # we do have cookielib, prepare the jar
+     cj = cookielib.LWPCookieJar()
+ # Now load the cookies, if any, and build+install an opener using them
+ if cj is not None:
+     if os.path.isfile(COOKIEFILE):
+         cj.load(COOKIEFILE)
+     if cookielib:
+         opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
+         urllib2.install_opener(opener)
+     else:
+         opener = ClientCookie.build_opener(ClientCookie.HTTPCookieProcessor(cj))
+         ClientCookie.install_opener(opener)
+ # for example, try a URL that sets a cookie
+ theurl = 'http://www.diy.co.uk'
+ txdata = None  # or, for POST instead of GET, txdata=urrlib.urlencode(somedict)
+ txheaders =  {'User-agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
+ try:
+     req = Request(theurl, txdata, txheaders)  # create a request object
+     handle = urlopen(req)                     # and open it
+ except IOError, e:
+     print 'Failed to open "%s".' % theurl
+     if hasattr(e, 'code'):
+         print 'Error code: %s.' % e.code
+ else:
+     print 'Here are the headers of the page:'
+     print handle.info()
+ # you can also use handle.read() to get the page, handle.geturl() to get the
+ # the true URL (could be different from `theurl' if there have been redirects)
+ if cj is None:
+     print "Sorry, no cookie jar, can't show you any cookies today"
+ else:
+     print 'Here are the cookies received so far:'
+     for index, cookie in enumerate(cj):
+         print index, ': ', cookie
+     cj.save(COOKIEFILE)                     # save the cookies again
+ 
-{{comment}}
+//{{comment}}