- 博客(15)
- 收藏
- 关注
原创 爬虫面试题总结
反爬有哪些? 1、识别用户身份: user_agent、 cookies、 referer、 验证码 2、识别用户行为: 并发量(IP和cookies)、 在线时间、 只请求html或ajax等部分类型数据、 蜜罐(设置一些正常用户不会点击的链接,但爬虫能爬到,一旦访问,IP暴露)、 通过机器学习分析是否想爬虫 3、动态数据加载: ...
2018-04-19 15:49:57 1825
原创 私有化
xx: 公有变量_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)__xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字xx_:单后置下划线,用于避免与Python关键词...
2018-03-30 10:38:27 386
原创 python中浅拷贝和深拷贝的区别
python的拷贝分为浅拷贝和深拷贝,若不特殊说明一般是浅拷贝。 – 直接赋值:其实就是对象的引用(别名),属于最基本的浅拷贝。 – 浅拷贝之copy:看对象是可变类型还是不可变类型,如果是不可变类型,则是对象的引用,如果是可变类型,则只拷贝父对象,不会拷贝对象的内部的子对象(如果只有一层,则和深拷贝无区别)。 – 深拷贝(deepcopy): copy 模块的 deepcopy ...
2018-03-27 14:46:03 505 1
原创 A为什么等待2MSL,从TIME_WAIT到CLOSE?
在客户端发送出最后的ACK回复,但该ACK可能丢失.Server如果没有收到ACK,将不断重复发送FIN片段。所以客户不能立即关闭,它必须确认服务器接收到了该ACK.Client会在发送出ACK之后进入到TIME_WAIT状态.Client会设置一个计时器,等待2 MSL的时间。如果在该时间内再次收到FIN,那么客户端会重发ACK并再次等待2 MSL。所谓的2MSL是两倍的MSL(最大段终身).M...
2018-03-22 16:25:05 1665
原创 为什么连接的时候是三次握手,关闭的时候却是四次握手?
1,当主机甲确认发送完数据且知道乙已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FIN给主机B.2,主机乙收到甲发送的FIN,表示收到了,就会发送ACK回复。3,但这是乙可能还在发送数据,没有想要关闭数据口的意思,所以FIN与ACK不是同时发送的,而是等到乙数据发送完了,才会发送FIN给主机A.4,A收到B发来的FIN,知道B的数据也发送完了,回复ACK,A等待2M...
2018-03-22 15:46:23 2118
原创 关系数据库设计范式介绍
.1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。说明:在任...
2018-03-16 16:57:20 204
原创 A server error occurred. Please contact the administrator.
关于django的站点管理,登录站点admin,如果出现标题这种问题,可能是以下原因: 1、本地化的时候,字母大小写没注意,正确的是LANGUAGE_CODE = 'zh-Hans'和TIME_ZONE = 'Asia/Shanghai',往上再分析是setting文件里的内容被改之后无法被解释器识别,所以以后碰见同类问题可以按照这个思路分析(然后如果再从新创建一个项目试试的话,如果还是报原来的
2018-01-27 23:18:19 26696 5
原创 Python的闭包与延时绑定问题
今天一个在自学python的同学问了这么一个问题,感觉挺典型的,于是整理如下:def mul(): return [lambda x : i*x for i in range(4)]print([m(2) for m in mul()])# output:# [6, 6, 6, 6]为毛结果是 [6, 6, 6, 6] 而不是我们以为的 [0, 2, 4, 6] 呢
2018-01-10 16:34:56 2342 3
原创 pyhton中__pycache__文件夹的产生与作用
源起今天和一新来的同事沟通,说他用python编写了一个工程,但在第一次运行后,发现工程根目录下生成了一个__pycache__文件夹,里面是和py文件同名的各种以 .cpython-35.pyc 结尾的文件,问同事都不太清楚,所以便抽空整理了一下该知识点。先解释下cpython-35,cpython代表的是c语言实现的Python解释器,-35代表的是版本为3.5版。 至于pyc,先来了解
2018-01-10 15:05:22 70700 26
原创 关于“xxx”object is not callable的异常
所谓callable对象是指一个后边可以加()的对象,比如函数, 所以这种异常肯定是某对象多加了(), 比如:把一个变量用了函数名来命名,结果再调这个函数的时候就会报这个异常。
2018-01-09 19:50:03 45278 11
原创 python中类当作装饰器及其意义
装饰器函数其实是这样一个接口约束,它必须接受一个callable对象作为参数,然后返回一个callable对象。在Python中一般callable对象都是函数,但也有例外。只要某个实例对象重写了 call() 方法,那么这个对象就是callable的。不带参数的类装饰器class Test(object): def __init__(self, func):
2018-01-09 19:40:23 1051 1
原创 Python中字典的get()方法以及defaultdict
字典中的get()方法先看代码:info_dict = {"name":"一条大树","age":18,"country":"中国"}print(info_dict.get("name"))print(info_dict["gender"]) #这行代码会抛异常print(info_dict.get("gender"))print(info_dict.get("gender",
2018-01-09 19:01:31 3501 1
原创 Python中内建属性__getattribute__的用法总结
首先理解__getattribute__的用法,先看代码:class Tree(object): def __init__(self,name): self.name = name self.cate = "plant" def __getattribute__(self,obj): print("哈哈") r
2018-01-04 19:39:24 27814 5
原创 函数、闭包、实例对象当做实参时,有什么区别?
先定义一个Python函数:def xxx(): pass那当函数、闭包和实例对象当做实参时,有什么区别呢?即下面几行代码的区别:xxx(函数)xxx(闭包)xxx(实例对象)答案:1、函数:能够完成一般的功能,传递的是这个函数的引用,只有功能 2、闭包:能够完成较复杂的功能,传递的是闭包中的函数以及数据,因此是功能+数据(可以说是阉割版的实例对象) 3
2018-01-04 17:30:26 453 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人