您当前的位置:第一教育网资讯正文

2019最新Python爬虫面试高频率面试题总结(二)

放大字体  缩小字体 2019-08-20 20:12:00  阅读:6797+ 来源:自媒体 作者:千锋Python-晨晨

原标题: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爬虫相关常识也会持续为我们更新!

责任编辑:

声明:本站所发布的内容均来源于互联网,目的在于传递信息,但不代表本站赞同其观点及立场,版权归属原作者,如有侵权请联系删除。