写在前面:Python中一切皆对象 Python单例模式,官网给的一个例子: def singleton(cls): instance = cls() instance.__call__ = lambda: instance return instance # Sample use @singleton class Highlander: x = 100 # Of course you can have

阅读全文 »

使用ImagePipeline的时候出现了一些问题,总结一下常见的问题: ①'nonetype' object has no attribute '__getitem__' 出现这个错误的时候,检查一下下面方法是否在Pipelines.py中重写了 get_media_requests item_completed 然后检查settings.py中是否配置了一下两个常量 item_pipel

阅读全文 »

链家使用的是单点登录(CAS)。模拟登录的时候主要分析表单提交的Url、cookie、表单内容,说白了就是带着cookie post账号密码,使session合法化的一个过程,只不过链家的登录过程稍微复杂一点。 要想实现模拟登录,就要先观察正常登录的流程: 打开chrome的开发者工具,选择network,打开登录页: <a href="https://iwww.me/uploads/images/2016/01/lianjia2.pn

阅读全文 »

deepcopy没有什么说的,使用这个方法,会在内存中开辟一块新内存出来,赋值的两个变量等值,但是内存地址完全不同,所以相互不会影响,要说的是浅copy,还是先看例子: a = [0, 1, 2, 3, [4, 5, 6], 7] b = a[:] a[0] = 5 a[4][0] = 99 print(a) print(b) 结果是: [5, 1, 2, 3, [99, 5, 6], 7] [0, 1, 2, 3, [9

阅读全文 »

首先说明一点,Python赋值没有值传递,只有引用传递,只要是出现赋值符号 = 就是引用传递。 >>> a = 1 >>> b = a >>> a = 2 >>> b >>> 1 修改a,b并没有发生变化,然后看下面的: >>> a = {'name': 'killer', 'age':24} >>> b = a >>> del a['name'] >>> b >>> {'age':

阅读全文 »