爬虫(16) - 面试(1) | 爬虫高频面试题

1.TCP IP分层模型及每层所包含的协议(常见) ?

可以分为5层,如果面试官问你:不是四层吗? 答:数据链路层和物理层是可以合到一起,简称为网络接口层。

  • 应用层
    • 常见的协议有:HTTP、FTP、SSH、DNS等;HTTP:超文本传输协议,比如我们打开网页使用的就是HTTP协议;FTP:文件传输协议,通过该协议进行下载文件;SSH:安全外壳协议,是一种加密的网络传输协议,工作中常见的使用xshell连接linux服务器,用的就是SSH协议;DNS:域名解析协议,将网站域名解析成IP地址进行访问,使用的就是DNS协议
  • 传输层
    • 主要有:TCP、UDP协议;TCP:传输控制协议,面向连接的,可靠的传输层通信协议;UDP:用户数据报协议,无连接,面向事务的,简单的,不可靠的信息传输协议,比如:我们看视频,使用DNS请求网站域名,他们使用的就是UDP协议
  • 网络层
    • 常见的协议:IP、ICMPIP:网卡上面配置的地址就是基于IP协议的,通过IP协议实现了网络数据的通信;ICMP:控制报文协议,用于探测网络联通性的,比如查看主机到网关的联通性,这台机器能不能上网。
  • 数据链路层
    • 地址解析协议:ARP、RARPARP:根据ip地址来获取物理机的mac地址;RARP:根据mac地址来解析主机的ip地址
  • 物理层
    • 物理传输媒介,比如网线、光纤等等

详细讲解:https://www.cnblogs.com/gltou/p/16309556.html

 

2.爬取的数据如何去重?

  • 方式一:通过md5指纹去重,通过md5生成的指纹来判断当前访问的这个页面是否改变了
  • 方式二:通过set/redis去重,数据量比较小的时候可以使用set集合的特性来去重;当数据量比较大时存入redis,根据redis的集合的数据特性去重

 

3.请简述从浏览器输入网址到看到网页的过程?

这个问题之前的笔记里面已经讲解过了,请跳转:https://www.cnblogs.com/gltou/p/16309556.html

4.请简述HTTP和HTTPS协议的区别?

HTTP协议:是使用明文数据传输的网络协议。端口80

HTTPS协议:HTTP协议的安全升级版,在HTTP的基础上增加了数据加密。端口443;HTTPS协议是由SSH+HTTP构成,可以加密传输,并且可以进行身份验证的网络协议,要比HTTP协议安全

 

5.常见的HTTP响应状态码有哪些,分别代表什么意思?

  • 200:请求成功
  • 3XX:重定项
  • 4XX:请求出错
  • 5XX:服务器错误

6.请求头中常见的字段?

  • User-Agent:客户端请求标识
  • Accept:传输文件类型,客户端希望接收的响应body 数据类型。就是希望服务器返回什么类型的数据
  • Refer:请求来源,记录这个请求的来源;可以用于日志分析、缓存优化等等
  • cookie:登录凭证
  • Content-Type:用于定义网络文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件

 

7.cookie和session的区别?

  • cookie和session都是用来跟踪浏览器用户身份的会话方式
  • cookie数据保存在客户端,session数据保存在服务器端
  • cookie过期看生成时设置的值,session过期看服务器设定
  • 详细了解:https://www.zhihu.com/question/19786827

 

8.IP代理有哪些分类,区别分别是什么?

  • 透明代理:爬虫请求数据的时候会携带真实IP
  • 普通匿名代理:虽然能隐藏客户机的真实IP,但是会改变请求的信息;因此服务器会认定我们使用了代理
  • 高匿代理:是不会改变客户机的请求,客户的IP同时是真实隐藏的;因此服务端是不会发现我们使用了代理

 

9.python中有哪些模块、框架被应用于爬虫技术中?

 

10.常见的反爬手段有哪些,如何破解?

详细跳转:https://www.cnblogs.com/gltou/p/16420050.html

  • 身份识别反爬虫
  • 爬虫行为反爬虫
  • 数据加密反爬虫

 

11.如何增量爬取数据?

通过scrapy-redis实现,详细跳转:https://www.cnblogs.com/gltou/p/16424854.html

posted @ 2022-07-07 08:59  葛老头  阅读(636)  评论(0编辑  收藏  举报