- 掌握http以及https的概念和默认端口
- 掌握 爬虫关注的请求头和响应头
- 了解常见的响应状态码
- 理解浏览器和爬虫爬取的区别
1. http以及https的概念和区别
- http:超文本传输协议,默认端口号是80
- 超文本:指不限于文本,还包括图片,视频和音频等文件
- 传输协议:使用约定的固定格式来传输转换成字符串的超文本内容
- https:HTTP+SSL(安全套接字层),即带有安全套接字的超文本传输协议,默认端口号:443
- SSL对于传输的内容进行加密
2. 爬虫特别关注的请求头和响应头(*为常用请求头)
2.1请求头(伪装)
content-type
host (域名)
Connection(链接类型,(https://blog.csdn.net/LL845876425/article/details/89743593))
*User-Agent(用户代理,提供系统信息和浏览器信息)
*Referer(页面跳转处,从哪个页面跳转过来的,检查请求是否合法)
*Cookie(状态保持,辨别用户身份)
2.2响应头
*Set-Cookie(对方服务器设置cookie到用户浏览器的缓存)
无痕模式
3 常见状态码
https://blog.csdn.net/banana960531/article/details/85621865
所有状态码都不可信,一切以是否从抓包得到的响应中获取到数据为准
network中抓包得到的源码才是判断依据,elements中的源码时渲染之后的源码,不能作为判断标准
4 浏览器运行过程
4.1http请求过程
- 浏览器在拿到域名对应的ip后,先向地址栏中的url发送请求,并获取响应
- 在返回的响应内容(html)中,会带有css,js,图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取响应的响应
- 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面内容,js也可以重新发送请求,获取响应
- 从获取第一个响应并在浏览器中展示,直到最终获取全部相应,并在展示的结果中添加内容或修改-----这个过程叫做浏览器的渲染
4.2 注意:
爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应内容可以是html、css、js、图片等)
浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,因为爬虫不具备渲染的能力
浏览器页面
骨骼文件(html静态文件)
肌肉文件(js/ajax请求)
皮肤(css/font/图片)
抓包过程:根据发送请求的流程分别在骨骼/肌肉/皮肤响应中查找数据
知识点:理解 浏览器展示的结果可以由多次请求对应的多次响应共同渲染出来,而爬虫是一次请求对应一个响应