Python爬虫之cookielib笔记

关于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


你可能感兴趣的:(Python爬虫之cookielib笔记)