2019独角兽企业重金招聘Python工程师标准>>>
关于Python cookie的保存,有三种形式。
1、保存在内存中
# -*- coding:utf-8 -*-
import urllib2
import cookielib
cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
opener.open('http://www.baidu.com')
print cookie
2、cookie保存在文件中(与Mozilla cookies.txt文件兼容格式)
# -*- coding:utf-8 -*-
import cookielib
import urllib2
filename = './cookie.txt'
#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件,gnore_discard的意思是即使cookies将被丢弃也将它保存下来,
#ignore_expires的意思是如果在该文件中 cookies已经存在,则覆盖原文件写入
cookie.save(ignore_discard=True, ignore_expires=True)
#read cookie from file
rcookie = cookielib.MozillaCookieJar()
print '******************before read******************'
print rcookie
print '******************after read******************'
rcookie.load('./cookie.txt')
print rcookie
3、cookie保存在文件中(与libwww-perl Set-Cookie3文件兼容格式)
import cookielib
import urllib2
#设置保存cookie的文件,同级目录下的cookie.txt
filename = './cookie.txt'
#声明一个LWPCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.LWPCookieJar(filename)
#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
#通过handler来构建opener
opener = urllib2.build_opener(handler)
#创建一个请求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件,gnore_discard的意思是即使cookies将被丢弃也将它保存下来,
#ignore_expires的意思是如果在该文件中 cookies已经存在,则覆盖原文件写入
cookie.save(ignore_discard=True, ignore_expires=True)
#read cookie from file
rcookie = cookielib.LWPCookieJar()
print '******************before read******************'
print rcookie
print '******************after read******************'
rcookie.load('./cookie.txt')
print rcookie