Cookie使用
来源:互联网 发布:java字符串转date 编辑:程序博客网 时间:2024/06/01 23:00
为什么要使用Cookie呢?
Cookie,指某些网站为了辨别用户身份,进行session跟踪而存储在用户本地终端上的数据(经过加密)。
Opener
当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例)。在前面,我们都是使用的默认的opener,也就是urlopen。它是一个特殊的opener,可以理解成opener的一个特殊实例,传入的参数仅仅是url,data,timeout。
如果我们需要用到Cookie,只用这个opener是不能达到目的的,所以我们需要创建更一般的opener来实现对Cookie的设置。
Cookielib
cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。 Cookielib模块非常强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录 功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。
它们的关系:CookieJar —-派生—->FileCookieJar —-派生—–>MozillaCookieJar和LWPCookieJar
获取Cookie保存到变量
利用CookieJar对象实现获取cookie的功能,存储到变量中
import urllib2import cookielib #声明一个CookieJar对象实例来保存cookiecookie=cookielib.CookieJar()#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器handler=urllib2.HTTPCookieProcessor(cookie)#通过handler来构建openeropener = urllib2.build_opener(handler)#此处的open方法同urllib2的urlopen方法,也可以传入requestresponse=opener.open('http://www.baidu.com')for item in cookie: print 'Name = '+item.name print 'Value = '+item.value
输出结果:
Name = BAIDUIDValue = C03FAF27E2D5FE0DD4A3DEC7725A6A6D:FG=1Name = BIDUPSIDValue = C03FAF27E2D5FE0DD4A3DEC7725A6A6DName = H_PS_PSSIDValue = 22809_1456_21110_22158Name = PSTMValue = 1494224680Name = BDSVRTMValue = 0Name = BD_HOMEValue = 0
保存Cookie到文件
如果想将cookie保存到文件中就用到FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存。
import urllib2import cookielib#设置保存cookie的文件,同级目录下的cookie.txtfilename='cookie.txt'#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件cookie=cookielib.MozillaCookieJar(filename)#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器handler=urllib2.HTTPCookieProcessor(cookie)#通过handler来构建openeropener=urllib2.build_opener(handler)#创建一个请求,原理同urllib2的urlopenresponse=opener.open("http://www.baidu.com")#保存cookie到文件cookie.save(ignore_discard=True,ignore_expires=True);
运行之后,cookies将被保存到cookie.txt文件中,跟python文件同级目录。
从文件中获取Cookie并访问
从cookie中读取信息,访问其他网站信息。
import urllib2import cookielib#创建MozillaCookieJar实例对象cookie=cookielib.MozillaCookieJar()#从文件中读取cookie内容到变量cookie.load("cookie.txt",ignore_discard=True,ignore_expires=True)#创建请求的requestreq=urllib2.Request('http://www.baidu.com')#利用urllib2的build_opener方法创建一个openeropener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))response=opener.open(req)print response.read()
- cookie 使用
- Cookie使用
- Cookie 使用
- Cookie使用
- cookie使用
- 使用cookie
- cookie使用
- cookie使用
- Cookie使用
- Cookie使用
- cookie使用
- Cookie使用
- Cookie使用
- cookie使用
- cookie 使用
- Cookie 使用
- Cookie使用
- cookie 使用
- 用一个例子解释什么是回调函数
- POJ4002Alice's mooncake shop
- Mysql数据库索引
- SpringMVC处理模型数据(2)
- 二分贪心总结
- Cookie使用
- 杭电4403 A very hard Aoshu problem DFS
- PHP获取指定日期之间各月第一天和最后一天
- Android Studio上传项目至jCenter
- 【机器学习】【基本理论】L0、L1、L2和核范数规则化学习总结【待补充整理】
- beautiful soup安装
- 170508 PyQt-comboBox的Bug修复,OlleyDbg的断点
- 嵌入式开发学习路线——写给初入门的同仁
- 2017.5.8 飞扬的小鸟 失败总结