第 10 章 模拟登录
很多情况下,网站的一些数据需要登录才能查看,如果想要爬取这部分数据的话,就需要实现模拟登录的一些机制。
模拟登录现在主要分为两种模式,一种是基于 Session 和 Cookie 的模拟登录,一种是基于 JWT(JSON Web Token)的模拟登录。
对于第一种模式,我们已经学习过 Session 和 Cookie 的用法。简单来说,打开网页后模拟登录,服务器会返回带有 Set-Cookie 字段的响应头,客户端会生成对应的 Cookie,其中保存着与 SessionID 相关的信息,之后发送给服务器的请求都会携带这个生成的 Cookie。服务器接收到请求后,会根据 Cookie 中保存的 SessionID 找到对应的 Session,同时校验 Cookie 里的相关信息,如果当前 Session 是有效的并且校验成功,服务器就判断当前用户已经登录,返回所请求的页面信息。所以,这种模式的核心是获取客户端登录后生成的 Cookie。
对于第二种模式也是如此,现在有很多网站采取的开发模式是前后端分离式,所以使用 JWT 进行登录校验越来越普遍。在请求数据时,服务器会校验请求中携带的 JWT 是否有效,如果有效,就返回正常的数据。所以,这种模式其实就是获取 JWT。
基于分析结果,我们可以手动在测览器里输入用户名和密码,再把 Cookie 或者 JWT 复制到代码中来请求数据,但是这样做明显会增加入工工作量。实现爬虫的目的不就是自动化吗?所以我们要做的就是用程序来完成这个过程,或者说用程序模拟登录。
本章我们将介绍模拟登录的相关内容。