Task03 session和cookie、代理、selenium自动化 拔高:丁香园留言板爬取

一、selenium工具

1、selenium介绍:

  • selenium是什么:一个自动化测试工具(大家都是这么说的)
  • selenium应用场景:用代码的方式去模拟浏览器操作过程(如:打开浏览器、在输入框里输入文字、回车等),在爬虫方面很有必要

2、selenium工具使用示例:

 

二、代理IP

1、代理IP介绍:

代理IP即代理服务器,英文全称是Proxy Server。其功能就是代理网络用户去获取网络信息,形象的说,它是网络信息的中转站。 一般情况下,使用浏览器直接连接目标Internet站点获取信息,然后由目标站点服务器直接把信息传回。代理服务器则是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到目标站点获取信息,而是向代理服务器发出请求,由代理服务器从目标站点取回所需要的信息,最后再传递给客户浏览器。大部分代理服务器都具有缓冲的功能,像一个大Cache,不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。

2、西刺代理IP获取示例:

运行结果如下:

三、session和cookie

1、session和cookie介绍:

Session 是会话的意思,会话是产生在服务端的,用来保存当前用户的会话信息,而 Cookies 是保存在客户端(浏览器),有了 Cookie 以后,客户端(浏览器)再次访问服务端的时候,会将这个 Cookie 带上,这时,服务端可以通过 Cookie 来识别本次请求到底是谁在访问。

可以简单理解为 Cookies 中保存了登录凭证,我们只要持有这个凭证,就可以在服务端保持一个登录状态。

在客户端(浏览器)第一次请求服务端的时候,服务端会返回一个请求头中带有 Set-Cookie 字段的响应给客户端(浏览器),用来标记是哪一个用户,客户端(浏览器)会把这个 Cookies 给保存起来。

当我们输入好用户名和密码时,客户端会将这个 Cookies 放在请求头一起发送给服务端,这时,服务端就知道是谁在进行登录操作,并且可以判断这个人输入的用户名和密码对不对,如果输入正确,则在服务端的 Session 记录一下这个人已经登录成功了,下次再请求的时候这个人就是登录状态了。

如果客户端传给服务端的 Cookies 是无效的,或者这个 Cookies 根本不是由这个服务端下发的,或者这个 Cookies 已经过期了,那么接下里的请求将不再能访问需要登录后才能访问的页面。

Session 和 Cookies 之间是需要相互配合的,一个在服务端,一个在客户端。

Cookies到底有哪些内容:

具体操作方式还是在 Chrome 中按 F12 打开开发者工具,选择 Application 标签,点开 Cookies 这一栏。

Name:这个是 Cookie 的名字。一旦创建,该名称便不可更改。

Value:这个是 Cookie 的值。

Domain:这个是可以访问该 Cookie 的域名。例如,如果设置为 .jd.com ,则所有以 jd.com ,结尾的域名都可以访问该Cookie。

Max Age:Cookie 失效的时间,单位为秒,也常和 Expires 一起使用。 Max Age 如果为正数,则在 Max Age 秒之后失效,如果为负数,则关闭浏览器时 Cookie 即失效,浏览器也不会保存该 Cookie 。

Path:Cookie 的使用路径。如果设置为 /path/ ,则只有路径为 /path/ 的页面可以访问该 Cookie 。如果设置为 / ,则本域名下的所有页面都可以访问该 Cookie 。

Size:Cookie 的大小。

HTTPOnly:如果此项打勾,那么通过 JS 脚本将无法读取到 Cookie 信息,这样能有效的防止 XSS 攻击,窃取 Cookie 内容,可以增加 Cookie 的安全性。

Secure:如果此项打勾,那么这个 Cookie 只能用 HTTPS 协议发送给服务器,用 HTTP 协议是不发送的。

Cookie持久化:其实也不能说是持久化,就是 Cookie 失效的时间设置的长一点,比如直接设置到 2099 年失效,这样,在浏览器关闭后,这个 Cookie 是会保存在我们的硬盘中的,下次打开浏览器,会再从我们的硬盘中将这个 Cookie 读取出来,用来维持用户的会话状态。

2、实战案例:模拟登录163

运行结果如下:

四、挑战项目

题目:模拟登录丁香园,并抓取论坛页面所有的人员基本信息与回复帖子内容。丁香园论坛:http://www.dxy.cn/bbs/thread/626626#626626 

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值