Python爬虫入门五

                           **会话管理**

1.Cookie技术

Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理,Cookie的会话数据保存在浏览器端。

Cookie技术原理

  • 服务器创建Cookie对象,保存会话数据,把Cookie数据发送给浏览器
  • 浏览器获取cookie数据,保存在浏览器缓存区,然后在下次访问服务器时携带cookie数据
  • 服务器获取浏览器发送的cookie数据

如何使用Cookie

 # coding=utf-8
import urllib2
import cookielib
# 声明一个CookieJar对象实例来保存cookie
cookie = cookielib.CookieJar()
# 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器
handler = urllib2.HTTPCookieProcessor(cookie)
# 通过handler来构建opener
opener = urllib2.build_opener(handler)
# 此处的open方法同urllib2的urlopen方法,也可以传入request
response = opener.open('http://www.weibo.com')
# 便利cookie中的值
for item in cookie:
    print 'Name = ' + item.name
    print 'Value = ' + item.value

运行结果如下
Name = YF-Ugrow-G0
Value = 3a02f95fa8b3c9dc73c74bc9f2ca4fc6

那么如何利用Cookie来抓取网页呢,这里介绍一个build_opener()方法,前面使用的urlopen()方法只不过是一个特殊的build_opener(),这个方法支持HTTP,FTP还有HTTPS,支持的范围更广,在urllib2.py中是这样写的
The opener will use several default handlers, including support for HTTP, FTP and when applicable, HTTPS.

我们通过cookies = cookielib.CookieJar()创建一个cookies对象,在build_opener中传入opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)再通过opener的open()方法去请求URL,opener.open(URL)

这样我们就可以使用cookie了,是不是soeasy (^o^)/~

session技术

session不属于爬虫的但是在会话管理中和cookies有同样的地位,简单介绍一下。

session技术的特点

  • 会话数据放在服务器端(服务器内存),占用服务器资源
  • 数据类型任意类型,没有大小限制的
  • 相对安全

在java中session的使用步骤是这样的

  • 创建HttPSession对象,用于保存会话数据
  • 修改HttpSeession对象
  • 保存会话数据(作为域对象)
session = request.getSession(); 创建对象
void setMaxInactiveInterval(int interval);设置有效时间 
session.setAttribute("name",Object);  保存数据
session.getAttribute("name");   获取数据
session.removeAttribute("name"); 删除数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值