May 23, 2013

RQ (Redis Queue)实践

最近想写个东西,需要用到消息队列。Python支持的消息队列有好多,以前工作中也用过Celery,配置起来挺麻烦的。然后就想到曾经在V2EX上看到过的RQ,RQ是一个Python实现的消息队列系统,使用Redis作为后端存储,依赖挺少的,就这个吧。

RQ有多种使用方式,文档里已有介绍 http://python-rq.org/docs/,我使用了装饰器的方法,这样比较方便。

文档中是这样的,

from rq.decorators import job

@job('low', conn=my_redis_conn, timeout=5)

def add(x, y):

r......

September 15, 2012

Python 爬虫框架

学Python的应该都写过爬虫吧,如果希望提高爬虫的效率就要用到并发,可以选择的用多线程、多进程,还有最近很火的Gevent,据说是基于一种新的概念,协程,不管什么程,总之好用就行了。写一个爬虫有一系列的东西需要处理,如果有一个好用的框架就会事半功倍。

在42qu.com源码里面,有个教主写的爬虫框架,很好用,是基于Gevent的,处理url采用和web开发类似的映射方法,教主还写了一个简单的html处理库,extract,虽没有Beautifulsoup那样强大,但是简单好用,基本能满足常见的要求。HTTP请求使用了requests,requests是个处理HTTP的库,用官方的话说“Req......

September 15, 2012

部署 42qu.com 源代码

前两个月我有幸参与了42区网站的重构(2012年中),经历了从hello world到完整网站的整个过程,为他添砖加瓦,也挖了不少坑。。。

42区的代码是开源的,可以从这里获得https://bitbucket.org/zuroc/42qu下面说一下怎样在你自己的网站上跑起来一个完整的42区。

首先当然是环境的配置,这里http://help.42qu.com/code/environment.html有完整的配置过程,其实就是安装需要的各种软件。42区运行环境主要使用的软件:

Linux操作系统,这个不解释,需要注意的是,官方的网站使用的是Gentoo操作系统,经测试Debian也是可以的,......