我正在编写一个简单的site spider,我决定借此机会学习Python并发编程的一些新知识。我决定尝试其他方法,而不是使用线程和队列,但是我不知道什么适合我。在
我听说过无堆垛,芹菜,扭曲,龙卷风,和其他东西。我不想建立一个数据库和芹菜的其他依赖关系,但如果它适合我的目的,我会的。在
我的问题是:我的应用程序的适用性和实用性之间的平衡点是什么?我已经看过Stackless中的微线程,但是我不确定urlopen()调用是否会阻塞,或者它们是否会并行执行,我在任何地方都没有看到过这一点。在
有人能给我一些关于我的选择和什么是最好的使用细节吗?在
谢谢。在
要快速了解包装尺寸,请参阅 ohloh.net/p/compare。
当然,源代码大小只是一个粗略的指标(我真正想要的是nr pages doc,nr pages examples, 依赖关系),但它可以帮助。在
Tornado是一个网络服务器,所以它对你编写一个蜘蛛没有多大帮助。Twisted更通用(而且不可避免地很复杂),适用于各种网络任务(并且与几个GUI框架的事件循环有很好的集成)。事实上,过去有一个扭曲的.web.spider(但它几年前就被移走了,因为它没有被维护,所以你必须在Twisted提供的设施上自己翻滚)。在
我必须说,扭曲得到了我的选票。在
在Twisted中,执行事件驱动任务相当简单。与其他重要的系统组件(如GTK+和DBus)的集成非常容易。在
HTTP客户机支持目前是基本的,但仍在改进(9.0.0):see related question。在
额外的好处是Twisted可以在Ubuntu默认存储库中使用;-)
相关问题 更多 >
编程相关推荐