5. 网络爬虫-使用Cookie登陆

网络爬虫 fireling 10460℃ 0评论

我们经常有这样的上网经历,就是如果你采用用户名密码登陆一个网站之后,如果在一段不长的时间内,再次访问这个本来需要你登陆的网站,你会很轻易地访问,而不需要再次输入用户名密码。这种“免登陆”的体验无疑给用户带来了非常好的体验,那为什么会“免登陆”呢?是什么在起作用呢?

答案就是Cookie。当我们在浏览器内输入url,浏览器会向服务器发送一个HTTP请求,相应的,服务器会响应这个请求,向浏览器返回响应的响应信息。所谓Cookie,可以简单认的为是在浏览器端记录包括登陆状态在内的各种属性值的容器名称,其实就是服务器为了保持浏览器与服务器之间连通状态,而在用户本地上创建的数据。只要用户再一次登陆,服务器会主动地寻找这些预存的数据,而无需再要求像第一次一样的操作。

Cookie是HTTP消息头中的一种属性,包括:Cookie名字(Name)Cookie的值(Value),Cookie的过期时间(Expires/Max-Age),Cookie作用路径(Path),Cookie所在域名(Domain),使用Cookie进行安全连接(Secure)。 前两个参数是Cookie应用的必要条件,另外,还包括Cookie大小(Size,不同浏览器对Cookie个数及大小限制是有差异的)。

有了Cookie,我们就可以实现自动登陆网站,甚至能够解决一些验证码登陆的情况。

在Python中,提供了cookielib这个模块,能够将cookie保存到本地,也可以保存在内存中。在第一次用用户名密码登陆网站之后,我们只需要如下创建opener对象,就可以记录cookie:

1

这样,接下来我们如果继续访问该域名的网站,直接采用opener.open(需要输入的url),就能实现用保存的Cookie直接打开。

怎么样?试试吧~很神奇的~

转载请注明:宁哥的小站 » 5. 网络爬虫-使用Cookie登陆

喜欢 (20)

您必须 登录 才能发表评论!