测试之道--网络爬虫系列5(cookie处理)

来源:互联网 发布:英语句子分析软件 编辑:程序博客网 时间:2024/06/04 19:35
  • 什么是cookie
    在爬虫的使用中,如果涉及到登录等操作经常会用到cookie,简单地说,我们访问的每一个互联网页面,都是通过http协议运行的,而http协议是一个无状态的协议:无法保存、维持会话之间的状态,如使用http成功登录一个网站,但是当我们访问该网站其他网页的时候,该登录状态会消失,此时还需要重新再登录一次,只要涉及到页面的更新都需要重新登录,这很不方便,所以我们就需要保存登录信息:cookie、session
  • cookie和session的区别与联系
    如果是cookie保存会话信息,会把所有的会话信息保存在客户端,当我们访问同一个网站的其他网页时,我们会从cookie中取出相应的会话信息;
    如果是使用session保存回话信息时,会将相应的会话信息保存在服务端,服务端会给客户端发送sessionid等信息(登陆时),这些信息一般也是存在客户端的cookie信息中(如果客户端禁止cookie也可能是其他方式存储,少部分),然后用户访问该网站的其他网页的时候,会从cookie中读取这一部分信息(SessionID等),然后再根据sessionid找到服务器中对应的完整的session信息,再进行会话控制。
    综述:无论以哪种方式进行会话控制,cookie都是基础
  • Cookiejar实战
    python3中用Cookiejar这个库来处理Cookie,在Python2中用Cookielib
    实例分析:我们想登陆ChinaUnix,点击登录框,上面的url为:http://bbs.chinaunix.net/member.php?mod=logging&action=login&logsubmit=yes
    但是者却不是真实的登录地址,输入账号密码点击登录(或者f12):
    http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LkoD4
    这个才是我们需要的处理POST表单的网址,接下来我们需要构建表单信息:
    这里写图片描述

所以我们构建的表单数据为:
{
“username”:”yangbp”,
“passwd”:”xunlei”
}

有了这些信息就可以进行登录的处理了,代码:
这里写图片描述

会发现第二个网页可以保留登录状态

阅读全文
0 0