爬虫学习(前期知识学习)
一、web请求过程剖析
服务器渲染
这种渲染方式是在服务器端将数据与html整合在一起然后统一返回给浏览器。因此这一种方式在页面源代码中可以看到数据。
客户端渲染
这种方式与服务器渲染有所差异,分为两次请求:
①:只拿到一个html骨架并没有数据
②:第二次请求则是拿到数据进行数据展示
这一次方式在页面源代码中是看不到数据的。
例如:
在豆瓣上喜剧片排行榜上:
在网页源代码查找关键词“憨豆”
发现并没有结果。接着查看network发现第一次请求只有html的骨架并无后端返回的数据展示。
这与客户端渲染描述一致~
接着往下看后面的请求:
toplist排行列表无疑应该是后端返回的响应数据,点开一看第一名与网页显示一致确实是美丽人生的一段json,说明这就是第二次发送的请求。
二、HTTP协议
背景
协议:是两个计算机之间为了能流畅的进行沟通而设置的约定,常见的协议就有HTTP协议、TCP/IP协议、SMIP协议......
HTTP协议:浏览器与服务器之间的数据交互所遵守的协议
HTTP协议把一条信息分为三块内容:
请求
1 请求行:主要是请求方式 请求url地址 协议
2 请求头:放一些服务器要使用的附加信息
{
请求头中对于爬虫比较重要的内容:1.User—Agent:请求载体的身份标识(用什么发送的这请求)
2.Referer:防盗链(这次请求从哪个页面来,反爬)
3.cookie:本地字符串数据信息(用户登录信息,反爬的token)
}4 请求体:放一些请求参数
响应:
1 状态行 :协议 状态码
2 响应头 :放一些客户端要使用的一些附加信息
{响应头中爬虫比较重要的内容:
1.cookie:本地字符串数据信息(用户登录信息,反爬的token)
2.各种诡异的字符串跟token类似防止各种攻击与反爬)
3:服务器返回的真正客户端需要的内容