
Python
文章平均质量分 69
nicajonh
编程,学习两大乐事
展开
-
Python关于__init__.py文件用法
Python关于__init__.py文件用法 这几天开发python时遇到一些坑,Python包互相引用报错,我以可以像Java一样自由引用,不过研究了下,还是可以做到的正题 1.python在建立包(目录)时,都有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module。那么,__init__.py还有什么别的功能呢?其实,原创 2016-05-17 12:45:03 · 1352 阅读 · 0 评论 -
理解Python多继承
当遇到:Error when calling the metaclass bases Cannot create a consistent method resolution order (MRO) for bases P2,P1这个异常,原因是多重继承的时候因为父类的顺序问题导致。class P1(object): def foo(self): print 'called...原创 2017-12-23 12:27:57 · 578 阅读 · 0 评论 -
增强的格式化字符串format函数
自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。语法它通过{}和:来代替%。“映射”示例通过位置In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},转载 2017-12-12 17:22:32 · 330 阅读 · 0 评论 -
celery深入配置
celery深入配置 celery的官方文档其实相对还是写的很不错的.但是在一些深层次的使用上面却显得杂乱甚至就没有某些方面的介绍, 通过我的一个测试环境的settings.py来说明一些使用celery的技巧和解决办法amqp交换类型 其实一共有4种交换类型,还有默认类型和自定义类型. 但是对我们配置队列只会用到其中之三,我来一个个说明,英语好的话可以直接去转载 2017-09-08 10:37:02 · 1586 阅读 · 0 评论 -
scrapy爬虫多次启动异常
最近在scrapy爬虫项目中遇到一些问题,手动通过CrawlProcess调度爬虫,报出异常错误“Scrapy - Reactor not Restartable”,原因是在同一个进程中无法重启twisted框架中的reactor堆。解决方案: 通过另外一个进程中启动reactor,示例代码 import scrapyimport scrapy.crawler as c原创 2017-09-23 15:45:41 · 6153 阅读 · 1 评论 -
Python垃圾回收机制及gc理解
Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅。引用计数最大缺陷就是循环引用的问题,所以python采用了辅助方法。本篇文章并不详细探讨Python的垃圾回收机制的内部实现,而是以gc模块为切入点学习Python的垃圾回收机制,如果想深入可以读读>。 看如下代码:[python] view plain copy转载 2017-08-24 16:30:36 · 828 阅读 · 0 评论 -
爬虫架构设计
前言:爬虫是偏IO型的任务,分布式爬虫的实现难度比分布式计算和分布式存储简单得多。 个人以为分布式爬虫需要考虑的点主要有以下几个:爬虫任务的统一调度 爬虫任务的统一去重 存储问题 速度问题 足够“健壮”的情况下实现起来越简单/方便越好 最好支持“断点续爬”功能Python分布式爬虫比较常用的应该是scrapy框架加上Redis内存数据库,中间的调度任务等用scrapy-red...转载 2017-04-15 01:03:31 · 1785 阅读 · 0 评论 -
Python的Twisted框架中reactor事件理解
详解Python的Twisted框架中reactor事件管理器的用法 文章主要介绍了详解Python的Twisted框架中reactor事件管理器的用法,Twisted是一款高人气的异步Python开发框架铺垫在大量的实践中,似乎我们总是通过类似的方式来使用异步编程:监听事件事件发生执行对应的回调函数回调完成(可能产生新的事件添加进监听队列)转载 2017-04-04 02:14:31 · 6039 阅读 · 0 评论 -
分布任务队列Celery服务
任务队列在 Web 服务里的应用 在 Web2.0 后的时代,社交网站、搜索引擎的的迅猛发展对 Web 服务的后台管理系统提出了更高的需求。考虑几个常见的使用场景:社交网站的用户在其主页发布了一组新的照片,这条新鲜事需要适时地推送至该用户的所有好友。该网站的活跃用户有千万级别,在同一时刻会有非常多的“新鲜事推送”任务需要处理,并且每个用户的好友数会达到 1000+原创 2016-11-19 00:10:48 · 2903 阅读 · 0 评论 -
如何让你的scrapy爬虫不再被ban
根据scrapy官方文档: http://doc.scrapy.org/en/master/topics/practices.html#avoiding-getting-banned 里面的描述,要防止scrapy被ban,主要有以下几个策略。动态设置user agent禁用cookies设置延迟下载使用 Google cache使用IP地址池( Tor project 、VPN和转载 2016-10-09 17:25:17 · 1239 阅读 · 0 评论 -
反爬虫之道
你被爬虫侵扰过么?当你看到“爬虫”两个字的时候,是不是已经有点血脉贲张的感觉了?千万要忍耐,稍稍做点什么,就可以在名义上让他们胜利,实际上让他们受损失。一、为什么要反爬虫1. 爬虫占总PV比例较高,这样浪费钱(尤其是三月份爬虫)三月份爬虫是个什么概念呢?每年的三月份我们会迎接一次爬虫高峰期。最初我们百思不得其解。直到有一次,四月份的时候,我们删除了一个url,然后有转载 2016-07-08 15:27:34 · 949 阅读 · 0 评论 -
python2到python3兼容写法
1.from __future__ import absolute_import绝对引入: 引入系统自带库查找相应模块相对引入:在python2.4或之前,引入模块会在当前程序目录查找相应的模块,没有找到则再到系统自带库查找相应模块PS:推荐工程自带模块引入模块时写法,from xxx import xxx2.from future impor...原创 2018-04-11 18:16:04 · 1452 阅读 · 2 评论