使用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':

阅读全文 »

使用PyCharm写Python项目的时候导入项目内部的模块的时候,import module下面会有红色波浪线,而且提示no module named xxx PyCharm没有找到相关模块,原因是因为项目的Source Root没有配置正确,要把Source Root设置为你项目的根目录: 打开settings,然后点击左边的Project,选择当前项目,然后点击右边的Add Content Root,如果已经存在的话就删除(应该是错误的目录),然后添加正确的项

阅读全文 »

前两天使用Apscheduler和Scrapy做的定时抓取遇到了一个问题,蜘蛛抓取第一次之后就不再抓取了,但是Apscheduler是没有问题的,一直无法解决,后来经过一个人的指点,有Scrapyd这东西,服务端的Scrapy,提供http接口,可以实现项目以及蜘蛛的管理,在这简单记录一下Scrapyd的使用过程。 首先安装Scrapy,然后是安装Scrapyd,可以通过pip或者源码安装,安装之后还需要安装一个东西,就是scrapyd-client,github地址

阅读全文 »