十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
了解python实战之爬虫面试必备题目有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
创新互联成立于2013年,公司以成都网站建设、网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户1000+,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。1、Python 有哪些数据类型?
Python 有 6 种内置的数据类型,其中不可变数据类型是Number(数字), String(字符串), Tuple(元组),可变数据类型是 List(列表),Dict(字典),Set(集合)。
2、列表和元组的区别
列表和元组都是可迭代对象,能够对其进行循环、切片等,但元组 tuple 是不可变的。元组不可变的特性,使得它可以成为字典 Dict 中的键。
3、Python 是如何运行的CPython:
Python 程序运行时,会先进行编译,将 .py 文件中的代码编译成字节码(byte code),编译结果储存在内存的 PyCodeObject 中,然后由 Python 虚拟机解释运行。当程序运行结束后,Python 解释器会将 PyCodeObject 保存到 pyc 文件中。每一次运行时 Python 都会先寻找与文件同名的 pyc 文件,如果 pyc 存在则比对修改记录,根据修改记录决定直接运行或再次编译后运行,最后生成 pyc 文件 。
4、Python 运行速度慢的原因
a). Python 不是强类型的语言,所以解释器运行时遇到变量以及数据类型转换、比较操作、引用变量时都需要检查其数据类型。
b). Python 的编译器启动速度比 JAVA 快,但几乎每次都要启动编译。
c). Python 的对象模型会导致访问内存效率变低。Numpy 的指针指向缓存区数据的值,而 Python 的指针指向缓存对象,再通过缓存对象指向数据:
5.搜索引擎的工作流程(通用爬虫的工作流程)
(1)抓取网页:通过搜索引擎将待爬取的URL加入到通用爬虫的URL队列中,进行网页内容的爬取。
(2)数据存储:将爬取下来的网页保存到本地,这个过程会有一定的去重操作,如果某个网页的内 容大部分内容都会重复,搜索引擎可能不会保存。
(3)预处理:提取文字,中文分词,消除噪音(比如版权声明文字,导航条,广告等)。
(4)设置网站排名,为用户提供服务。
6、什么是栈溢出?怎么解决?
因为栈一般默认为1-2m,一旦出现死循环或者是大量的递归调用,在不断的压栈过程中,造成栈容量超过1m而导致溢出。
栈溢出的情况有两种:1)局部数组过大。当函数内部数组过大时,有可能导致堆栈溢出。2)递归调用层次太多。递归函数在运行时会执行压栈操作,当压栈次数太多时,也会导致堆栈溢出。
解决方法:1)用栈把递归转换成非递归。2)增大栈空间。
7、 MySQL的索引在什么情况下失效?
1)如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)
要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引。
2)对于多列索引,不是使用的第一部分,则不会使用索引。
3)like查询以%开头。
4)如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引。
5)如果MySQL估计使用全表扫描要比使用索引快,则不使用索引。
8、 HTTPS是如何实现安全传输数据的?
客户端(通常是浏览器)先向服务器发出加密通信的请求;
服务器收到请求,然后响应;
客户端收到证书之后会首先会进行验证;
服务器收到使用公钥加密的内容,在服务器端使用私钥解密之后获得随机数pre-master secret,然后根据radom1、radom2、pre-master secret通过一定的算法得出session Key和MAC算法秘钥,作为后面交互过程中使用对称秘钥。同时客户端也会使用radom1、radom2、pre-master secret,和同样的算法生成session Key和MAC算法的秘钥。
然后再后续的交互中就使用session Key和MAC算法的秘钥对传输的内容进行加密和解密。
感谢各位的阅读!看完上述内容,你们对python实战之爬虫面试必备题目有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道。