重写了一下gcrawler
来源:互联网 发布:手机照片数据恢复 编辑:程序博客网 时间:2024/04/29 00:58
去年做过一个《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
新的代码和原来一样是两个文件:一个是主模块文件,另一个是测试用例兼使用方法说明。
已发布在bitbucket和github,采用BSD License。
- 重写了一下gcrawler
- 重写一下hashCode方法
- 用vc++重写的文件扩展名批量修改工具(改进了一下)
- 实在受不了Ogre的Maya导出插件,所以重写了一下。
- 看到网站《百度google一下》很好玩,特地花点时间用PHP重写了代码
- 第十三天:ArrayList的底层add方法原理,按自己理解重写了一下
- WPF真的很好用,重写了一下N年前让我戒掉赌博的游戏!!
- 重写博客了
- 重写了书法字典
- 开始重写小说了
- 这个题目我重写了好几遍,虽然思路很清晰,但始终没有写出来,借鉴了一下别人的,日后再研究
- 重写一下js的alert函數
- 记录一下nginx配置和重写开启
- 重写了equals,为啥一定要重写hashcode
- 为什么重写了equals(),还要重写hashCode()?
- 激活了,庆祝一下!
- 试了一下Blog
- 整理了一下
- Win7无线网络共享设置方法
- Java-乔晓松-Jsp页面九九乘法表
- 电脑故障维修大全
- UltraEdit for linux 不断试用30天的方法
- 张亚东:窦唯和朴树都很自我 从不用音乐讨好旁人
- 重写了一下gcrawler
- TCP案例体现
- 想做嵌入式却没经验找不到工作!!!
- 程序员经典面试题及答案3
- JS正则表达式大全
- 位运算
- 多线程的使用
- pyqt4 信号与槽方式
- Enum枚举结合switch的使用