python使用cookielib库示例分享

1015次阅读  |  发布于5年以前

该模块主要功能是提供可存储cookie的对象。使用此模块捕获cookie并在后续连接请求时重新发送,还可以用来处理包含cookie数据的文件。

这个模块主要提供了这几个对象,CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar。

1. CookieJar

CookieJar对象存储在内存中。

复制代码 代码如下:

import urllib2
import cookielib
cookie=cookielib.CookieJar()
handler=urllib2.HTTPCookieProcessor(cookie)
opener=urllib2.build_opener(handler)
opener.open('http://www.google.com.hk')

访问google的cookie已经被捕捉了,来看下是怎样的:

复制代码 代码如下:

print cookie
<cookielib.CookieJar[<Cookie NID=67=B6YQoEIEjcqDj-adada_WmNYl_JvADsDEDchFTMtAgERTgRjK452ko6gr9G0Q5p9h1vlmHpCR56XCrWwg1pv6iqhZnaVlnwoeM-Ln7kIUWi92l-X2fvUqgwDnN3qowDW for .google.com.hk/>, <Cookie PREF=ID=7ae0fa51234ce2b1:FF=0:NW=1:TM=1391219446:LM=1391219446:S=cFiZ5X8ts9NY3cmk for .google.com.hk/>]>

看来是Cookie实例的集合,Cookie实例有name,value,path,expires等属性:

复制代码 代码如下:

for ck in cookie:
... print ck.name,':',ck.value
...
NID : 67=B6YQoEIEjcqDj-adada_WmNYl_JvADsDEDchFTMtAgERTgRjK452ko6gr9G0Q5p9h1vlmHpCR56XCrWwg1pv6iqhZnaVlnwoeM-Ln7kIUWi92l-X2fvUqgwDnN3qowDW
PREF : ID=7ae0fa51234ce2b1:FF=0:NW=1:TM=1391219446:LM=1391219446:S=cFiZ5X8ts9NY3cmk

2.将cookie捕捉到文件

FileCookieJar(filename)

创建FileCookieJar实例,检索cookie信息并将信息存储到文件中,filename是文件名。

MozillaCookieJar(filename)

创建与Mozilla cookies.txt文件兼容的FileCookieJar实例。

LWPCookieJar(filename)

创建与libwww-perl Set-Cookie3文件兼容的FileCookieJar实例。

代码:

复制代码 代码如下:

import urllib2
import cookielib
def HandleCookie():

handle cookie whit file

 filename='FileCookieJar.txt'  
 url='http://www.google.com.hk'  
 FileCookieJar=cookielib.LWPCookieJar(filename)  
 FileCookeJar.save()  
 opener =urllib2.build_opener(urllib2.HTTPCookieProcessor(FileCookieJar))  
 opener.open(url)  
 FileCookieJar.save()  
 print open(filename).read()

 #read cookie from file  
 readfilename = "readFileCookieJar.txt"  
 MozillaCookieJarFile =cookielib.MozillaCookieJar(readfilename)  
 print MozillaCookieJarFile          
 MozillaCookieJarFile.load(cookieFilenameMozilla)  
 print MozillaCookieJarFile  

if name=="main":
HandleCookie()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8