原标题:2019最新Python爬虫面试高频率面试题总结(二)
今日接着跟我们总结Python爬虫面试中常见的高频面试题。有需求的同伴用心看啦!
1 . Request中包括什么呢?
1、恳求办法:首要有GET和POST两种办法,POST恳求的参数不会包括在url里边
2、恳求URL
URL:一致资源定位符,如一个网页文档、一张图片、一个视频等都能够用URL来仅有确认
3、恳求头信息,包括了User-Agent(浏览器恳求头)、Host、cookies信息
4、恳求体,GET恳求时,一般不会有,POST恳求时,恳求体一般包括form-data
2 . Response中包括什么信息?
1、呼应情况:情况码 正常呼应200 重定向
2、呼应头:如内容类型、内容长度、服务器信息、设置cookie等
3、呼应体信息:呼应源代码、图片二进制数据等等
3 . 常见的http情况码
200情况码 服务器恳求正常
301情况码:被恳求的资源已永久移动到新方位。服务器回来此呼应(对 GET 或 HEAD 恳求的呼应)时,会主动将恳求者转到新方位。
302情况码:恳求的资源暂时从不同的URI呼应恳求,但恳求者应持续运用原有方位来进行今后的恳求
401情况码:恳求要求身份验证。 关于需求登录的网页,服务器或许回来此呼应。
403情况码:服务器现已了解恳求,可是拒绝履行它。与401呼应不同的是,身份验证并不能供给任何协助,而且这个恳求也不该该被重复提交。
404情况码:恳求失利,恳求所期望得到的资源未被在服务器上发现。
500情况码:服务器遇到了一个未曾意料的情况,导致了它无法完成对恳求的处理。一般来说,这个问题都会在服务器的程序码犯错时呈现。
503情况码:因为暂时的服务器保护或许过载,服务器当时无法处理恳求。
4 . HTTP 的恳求和呼应都包括哪些内容
HTTP恳求头
Accept:浏览器能够处理的内容类型
Accept-Charset:浏览器能够显现的字符集
Accept-Encoding:浏览器能够处理的紧缩编码
Accept-Language:浏览器当时设置的言语
Connection:浏览器与服务器之间衔接的类型
cookie:当时页面设置的任何cookie
Host:宣布恳求的页面地点的域
Referer:宣布恳求的页面的URL
User-Agent:浏览器的用户署理字符串
HTTP呼应头部信息:
Date:表明音讯发送的时刻,时刻的描绘格局由rfc822界说
server:服务器姓名。
Connection:浏览器与服务器之间衔接的类型
content-type:表明后边的文档归于什么MIME类型
Cache-Control:操控HTTP缓存
5 . mysql的索引在什么情况下失效
1.假如条件中有or,即便其间有条件带索引也不会运用(这也是为什么尽量少用or的原因)
要想运用or,又想让索引收效,只能将or条件中的每个列都加上索引
2.关于多列索引,不是运用的榜首部分,则不会运用索引
3.like查询以%最初
4.假如列类型是字符串,那必定要在条件中将数据运用引号引证起来,不然不运用索引
5.假如mysql估量运用全表扫描要比运用索引快,则不运用索引
6 . MySQL 有什么引擎,各引擎之间有什么差异?
首要 MyISAM 与 InnoDB 两个引擎,其首要差异如下:
1、InnoDB 支撑业务,MyISAM 不支撑,这一点是十分之重要。业务是一种高档的处理办法,如在一些列增修正中只需哪个犯错还能够回滚复原,而 MyISAM就不能够了;
2、MyISAM 合适查询以及刺进为主的运用,InnoDB 合适频频修正以及涉及到安全性较高的运用;
3、InnoDB 支撑外键,MyISAM 不支撑;
4、MyISAM 是默许引擎,InnoDB 需求指定;
5、InnoDB 不支撑 FULLTEXT 类型的索引;
6、InnoDB 中不保存表的行数,如 select count() from table 时,InnoDB;需求扫描一遍整个表来核算有多少行,可是 MyISAM 只需简略的读出保存好的行数即可。留意的是,当 count()句子包括 where 条件时 MyISAM 也需求扫描整个表;
7、关于自增加的字段,InnoDB 中有必要包括只要该字段的索引,可是在 MyISAM表中能够和其他字段一同树立联合索引;
8、清空整个表时,InnoDB 是一行一行的删去,功率十分慢。MyISAM 则会重建表;
9、InnoDB 支撑行锁(某些情况下仍是锁整表,如 update table set a=1 where user like '%lee%'
7 . Scrapy优缺陷:
长处:
scrapy 是异步的
采纳可读性更强的xpath替代正则
强壮的计算和log体系
一起在不同的url上匍匐
支撑shell办法,便利独立调试
写middleware,便利写一些一致的过滤器
经过管道的办法存入数据库
缺陷:依据python的爬虫结构,扩展性比较差
依据twisted结构,运转中的exception是不会干掉reactor,而且异步结构犯错后是不会停掉其他使命的,数据犯错后难以发觉。
8 . HTTPS 是怎么完成安全传输数据的
客户端(通常是浏览器)先向服务器宣布加密通讯的恳求
服务器收到恳求,然后呼应
客户端收到证书之后会首先会进行验证
服务器收到运用公钥加密的内容,在服务器端运用私钥解密之后取得随机数pre-master secret,然后依据radom1、radom2、pre-master secret经过必定的算法得出session Key和MAC算法秘钥,作为后边交互过程中运用对称秘钥。一起客户端也会运用radom1、radom2、pre-master secret,和相同的算法生成session Key和MAC算法的秘钥。
然后再后续的交互中就运用session Key和MAC算法的秘钥对传输的内容进行加密和解密。
9 . 描绘下scrapy 结构运转的机制?
从start_urls里获取榜首批url并发送恳求,恳求由引擎交给调度器入恳求行列,获取完毕后,调度器将恳求行列里的恳求交给下载器去获取恳求对应的呼应资源,并将呼应交给自己编写的解析办法做提取处理:
假如提取出需求的数据,则交给管道文件处理;
假如提取出url,则持续履行之前的过程(发送url恳求,并由引擎将恳求交给调度器入行列...),直到恳求行列里没有恳求,程序完毕。
有弥补的同伴,欢迎弥补,更多的Python爬虫相关常识也会持续为我们更新!
责任编辑: