Python利用CookieJar自动处理Cookies


Cookie处理,在实际应用中是相当的普遍,而且也非常的重要,这里我将Python如何处理Cookie做个大概说,当我们第一次访问网站的某个页面后,服务器(Server)可将Cookie信息加入到HTTP Response Header中返回给客户端(或浏览器),浏览器会将这些信息保存到本地;当我们再次访问相同的域名时,浏览器会将对应的Cookie信息一起发送给服务器,Server读取这些信息并进行处理。

Cookie生存周期

Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。
Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭页面时,就马上清除Cookie,不会记录用户信息,更加安全。

Python代码

?
1
2
3
4
5
6
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
r = urllib2.urlopen( 'http://www.baidu.com' )
print cj._cookies.values()

Output:

?
1
[{'/': {'BAIDUID': Cookie(version=0, name='BAIDUID', value=', port=None, port_specified=False, domain='.baidu.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=2288058571L, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)}}]

上面我们已经获取到了Cookie,那我们又如何把这些cookie信息保存下来呢?

如果是通过浏览器来访问,浏览器会自动帮助我们保存这些cookie信息,现在我们是通过自己编写怕Python代码来访问页面,所以我们需要自己来处理并保存cookie信息。

Python代码

?
1
2
3
4
for c in cj:
     cookie + = c.name + '=' + c.value + ';'
     # 输出合并后的cookie信息,跟上面的输出进行对比,看看是否是真的合并了cookie信息
     print cookie

Output:

?
1
BAIDUID=6ABA918DE69E9B960417952E8F4B80B4:FG=1;;

OK,已经将cookie变成了文本,我们只需要通过Python提供的文件操作或写入数据库进行保存。

接下来,我们已经得到了我们想要的cookie,在下一次访问的,我们只需要把这个cookie信息,发送给服务器即可。


转载自http://www.beingexperts.com/archives/python%E5%88%A9%E7%94%A8cookiejar%E8%87%AA%E5%8A%A8%E5%A4%84%E7%90%86cookies.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值