您应该将cookielib模块与urllib一起使用。
它将在请求之间存储cookie,您可以将它们加载/保存在磁盘上。这是一个例子:
import cookielib
import urllib2
cookies = cookielib.LWPCookieJar()
handlers = [
urllib2.HTTPHandler(),
urllib2.HTTPSHandler(),
urllib2.HTTPCookieProcessor(cookies)
]
opener = urllib2.build_opener(*handlers)
def fetch(uri):
req = urllib2.Request(uri)
return opener.open(req)
def dump():
for cookie in cookies:
print cookie.name, cookie.value
uri = 'http://www.google.com/'
res = fetch(uri)
dump()
res = fetch(uri)
dump()
# save cookies to disk. you can load them with cookies.load() as well.
cookies.save('mycookies.txt')
请注意,请求之间的NID
和值PREF
相同。如果省略,则HTTPCookieProcessor
它们将有所不同(urllib2不会Cookie
在第二个请求上发送标头)。