Python 爬虫(二十五) Cookie的处理--cookielib库的使用

 

Python中cookielib库(python3中为http.cookiejar)为存储和管理cookie提供客户端支持。

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

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

1. CookieJar

    CookieJar对象存储在内存中。

1 >>> import urllib2
2 >>> import cookielib
3 >>> cookie=cookielib.CookieJar()
4 >>> handler=urllib2.HTTPCookieProcessor(cookie)
5 >>> opener=urllib2.build_opener(handler)
6 >>> opener.open('http://www.google.com.hk'

查看捕捉到的访问google的cookie:

1 >>> print cookie
2 <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/>]>
View Code

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

1 >>> for ck in cookie:
2 ...     print ck.name,':',ck.value
3 ...
4 NID : 67=B6YQoEIEjcqDj-adada_WmNYl_JvADsDEDchFTMtAgERTgRjK452ko6gr9G0Q5p9h1vlmHpCR56XCrWwg1pv6iqhZnaVlnwoeM-Ln7kIUWi92l-X2fvUqgwDnN3qowDW
5 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实例。

 1 import urllib2
 2 import cookielib
 3 def HandleCookie():
 4 
 5 #handle cookie whit file
 6 filename='FileCookieJar.txt'
 7 url='http://www.google.com.hk'
 8 FileCookieJar=cookielib.LWPCookieJar(filename)
 9 FileCookeJar.save()
10 opener =urllib2.build_opener(urllib2.HTTPCookieProcessor(FileCookieJar))
11 opener.open(url)
12 FileCookieJar.save()
13 print open(filename).read()
14 
15 #read cookie from file
16 readfilename = "readFileCookieJar.txt"
17 MozillaCookieJarFile =cookielib.MozillaCookieJar()
18 print MozillaCookieJarFile       
19  MozillaCookieJarFile.load(readfilename)
20  print MozillaCookieJarFile
21 if __name__=="__main__":
22      HandleCookie()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/moying-wq/p/10149664.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值