python使用cookielib库示例分享
该模块主要功能是提供可存储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()