Python爬虫工程师面试问题总结爬虫工程师面试问题总结
本篇文章给大家总结了关于Python爬虫工程师面试问题总结,希望我们整理的内容能够帮助到大家。
注:答案一般在网上都能够找到。
1.对if __name__ == 'main'的理解陈述
2.python是如何进行内存管理的?
3.请写出一段Python代码实现删除一个list里面的重复元素
4.Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
5.介绍一下except的用法和作用?
6.Python中__new__与__init__方法的区别
7.常用的网络数据爬取方法
8.遇到过得反爬虫策略以及解决方法
9.urllib 和 urllib2 的区别
10.设计一个基于session登录验证的爬虫方案
11.列举网络爬虫所用到的网络数据包,解析包
12.熟悉的爬虫框架
13.Python在服务器的部署流程,以及环境隔离
14.Django 和 Flask 的相同点与不同点,如何进行选择?
15.写一个Python中的单例模式
16.Linux部署服务脚本命令(包括启动和停止的shell脚本)
17.你用过多线程和异步嘛?除此之外你还用过什么方法来提高爬虫效率?
18.POST 与 GET的区别
1)对)对if __name__ == 'main'的理解陈述的理解陈述
__name__是当前模块名,当模块被直接运行时模块名为__main__,也就是当前的模块,当模块被导入时,模块名就不是
__main__,即代码将不会执行。
2))python是如何进行内存管理的?是如何进行内存管理的?
a、对象的引用计数机制、对象的引用计数机制
python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时
就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。
b、垃圾回收、垃圾回收
1>当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。
2>当两个对象a和b相互引用时,del语句可以减少a和b的引用计数,并销毁用于引用底层对象 的名称。然而由于每个对象都包
含一个对其他对象的应用,因此引用计数不会归零,对象也不会销毁。(从而导致内存泄露)。为解决这一问题,解释器会定
期执行一个循环检测器,搜索不可访问对象的循环并删除它们。
c、内存池机制、内存池机制
Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。
1>Pymalloc机制。为了加速Python的执行效率,Python引入了一个内存池机制,用于管理 对小块内存的申请和释放。
2>Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用 系统的malloc。
3>对于Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又
释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。
评论1
最新资源