摘要:内存池机制提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。为了加速的执行效率,引入了一个内存池机制,用于管理对小块内存的申请和释放。
注:答案一般在网上都能够找到。
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的区别
对if __name__ == "main"的理解陈述
__name__是当前模块名,当模块被直接运行时模块名为__main__,也就是当前的模块,当模块被导入时,模块名就不是__main__,即代码将不会执行。
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,都有其独立的私有内存池,对象间不共享他们的内存池。也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。
请写出一段Python代码实现删除一个list里面的重复元素
# 1.使用set函数 list = [1, 3, 4, 5, 51, 2, 3] set(list) # 2.使用字典函数, >>> a = [1, 2, 4, 2, 4, 5, 6, 5, 7, 8, 9, 0] >>> b = {} >>> b = b.fromkeys(a) >>> c = list(b.keys()) >>> c
Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)
赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。
浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}
深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}
介绍一下except的用法和作用?
try…except…except…else…
执行try下的语句,如果引发异常,则执行过程会跳到except语句。对每个except分支顺序尝试执行,如果引发的异常与except中的异常组匹配,执行相应的语句。如果所有的except都不匹配,则异常会传递到下一个调用本代码的最高层try代码中。
try下的语句正常执行,则执行else块代码。如果发生异常,就不会执行如果存在finally语句,最后总是会执行。
Python中__new__与__init__方法的区别
__new__:它是创建对象时调用,会返回当前对象的一个实例,可以用__new__来实现单例
__init__:它是创建对象后调用,对当前对象的一些实例初始化,无返回值
常用的网络数据爬取方法
正则表达式
Beautiful Soup
Lxml
遇到过得反爬虫策略以及解决方法
1.通过headers反爬虫
2.基于用户行为的发爬虫:(同一IP短时间内访问的频率)
3.动态网页反爬虫(通过ajax请求数据,或者通过JavaScript生成)
4.对部分数据进行加密处理的(数据是乱码)
解决方法:
对于基本网页的抓取可以自定义headers,添加headers的数据
使用多个代理ip进行抓取或者设置抓取的频率降低一些,
动态网页的可以使用selenium + phantomjs 进行抓取
对部分数据进行加密的,可以使用selenium进行截图,使用python自带的pytesseract库进行识别,但是比较慢最直接的方法是找到加密的方法进行逆向推理。
urllib 和 urllib2 的区别
urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。urllib不可以伪装你的User-Agent字符串。
urllib提供urlencode()方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。
设计一个基于session登录验证的爬虫方案
列举网络爬虫所用到的网络数据包,解析包
网络数据包 urllib、urllib2、requests
解析包 re、xpath、beautiful soup、lxml
熟悉的爬虫框架
Scrapy框架 根据自己的实际情况回答
Python在服务器的部署流程,以及环境隔离
Django 和 Flask 的相同点与不同点,如何进行选择?
写一个Python中的单例模式
class Singleton(object): _instance = None def __new__(cls, *args, **kw): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls, *args, **kw) return cls._instance class MyClass(Singleton): a = 1 one = MyClass() two = MyClass() id(one) = id(two) >>> True
Linux部署服务脚本命令(包括启动和停止的shell脚本)
你用过多线程和异步嘛?除此之外你还用过什么方法来提高爬虫效率?
scrapy-redis 分布式爬取
对于定向爬取可以用正则取代xpath
POST与 GET的区别
GET数据传输安全性低,POST传输数据安全性高,因为参数不会被保存在浏览器历史或web服务器日志中;
在做数据查询时,建议用GET方式;而在做数据添加、修改或删除时,建议用POST方式;
GET在url中传递数据,数据信息放在请求头中;而POST请求信息放在请求体中进行传递数据;
GET传输数据的数据量较小,只能在请求头中发送数据,而POST传输数据信息比较大,一般不受限制;
在执行效率来说,GET比POST好
什么是lambda函数?它有什么好处?
lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数
lambda函数:首要用途是指点短小的回调函数
lambda [arguments]:expression >>> a=lambdax,y:x+y >>> a(3,11)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/44645.html
摘要:面试的心得体会简历制作我做了两份简历,用两个手机账号,两个简历名字,分别在各个招聘网站投了双份简历,一个是数据分析的简历一个是全栈开发的简历,我真正接触快年,不管是学习还是工作学到的东西,这两年大概掌握了前端爬虫数据分析机器学习技术, showImg(https://upload-images.jianshu.io/upload_images/13090773-b96aac7e974c...
摘要:接下来我们就来看看学到什么程度才算是真正学会可以去一展身手。一确立目标了解需求做什么事情都要先确定好目标,才不至于迷失方向。 大家在学习Python的时候,有人会问Python要学到什么程度才能出去找工作,对于在Python培训机构学习Python的同学来说这都不是问题,因为按照Python课程大纲来,一般都不会有什么问题,而对于自学Python来说,那就比较难掌握,冒然出去找工作非常...
摘要:今天是年月号,是我实习的第二天,记录一下找工作的历程,本来准备昨晚写的,但是第一天来实习,有点累了,就早点睡了,早上醒了,洗漱一下就来写这篇文章了。 showImg(https://hqx.oss-cn-beijing.aliyuncs.com/image/beautiful/pexels-photo-428320.jpeg?x-oss-process=style/jixn); 今天是...
摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...
阅读 2471·2021-11-24 09:39
阅读 3403·2021-11-15 11:37
阅读 2250·2021-10-08 10:04
阅读 3964·2021-09-09 11:54
阅读 1881·2021-08-18 10:24
阅读 1030·2019-08-30 11:02
阅读 1790·2019-08-29 18:45
阅读 1650·2019-08-29 16:33