个人租房网

个人租房 = tornado + mongodb + xapian + mysql ...

↑我也要推荐

猛禽的编程艺术:重构 gcrawler ( 一个基于gevent的简单爬虫框架 )

发布时间:2012-11-21 23:07:28, 关注:+6597, 赞美:+7, 不爽:+6

本文标签: gevent scrapy

原始出处: 猛禽的编程艺术

去年做过一个《gcrawler:一个基于gevent的简单爬虫框架》,当时因为是模仿Scrapy的,所以整个实现其实很不gevent,太难看,并且实际上效率也不高。

这次因为要改写一个以前用Scrapy写的爬虫,于是就拿这个自己做的东西来用——去年其实也拿这个东西做过,只是有一段时间没用了。

改写了一部分以后发现原来的代码有很多改进的方面,本来想修改修改就算了,不过改了一部分以后发现还是把整个结构重新设计一下比较好。

新的结构把原来的GCrawler和Downloader合并了,做成了一个Scheduler。整个爬虫的工作流程比原来清晰很多,使用上也简单很多。

当然,这样一来就牺牲了原来Cralwer和Downloader分离时可以定制Downloader的灵活性,不过这个问题其实也不大,只需要从Scheduler里派生并override那个fetch方法,也是可以实现的。

更BT的需求还可以直接去修改Scheduler——反正也没几行代码,我大概花了一上午就写好这个版本代码的初稿。当然,现在的代码是后来在实际使用中作了很多修补工作以后的。

代码就不贴了,直接看最新的源码吧。原来那个google code的已经不更新了,因为众所周知的原因,国内使用google服务相当的不顺畅,所以目前已经搬到bitbucket。本来也想去人气更旺的github,为此我还特地装了hg-git,结果发现github也很不顺畅,于是就去了bitbucket。

bitbucket:https://bitbucket.org/raptorz/gcrawler

新的代码和原来一样是两个文件:一个是主模块文件,另一个是测试用例兼使用方法说明。

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠