为什么要开发爬山虎
01、解决传统PHP爬虫框架的性能和扩展问题
传统的PHP爬虫框架普遍有两大不足:
一个是大多为单进程工作模型;另一个是大多为单机或同步工作模式,换句话即看不到 socket 的身影,
因此无法做到分布式及分离式部署,因此无法最大化发挥爬取性能,而爬山虎是基于 workerman 开发的,
能够轻松支持如下架构:异步IO + 多进程 + 分布/分离式部署 + 事件驱动
模型,
从而保证爬山虎发挥最大化性能【不过作者认为:性能其实在爬虫领域内没有突出意义,而且有限的政策环境也使性能蒙上了物理阴影】;
此外爬山虎采用了微内核 + 插件 + 分离式部署
的设计理念,所以具备强扩展性。
02、希望给各位PHP小伙伴提供一种额外选择
目前已经存在各种语言版本的优秀爬虫框架,比如:基于python的scrapy、基于Java的Spiderman、 基于Go语言的go-colly等,但是在Workerman或Swoole的加持下,PHP在此领域同样大有可用武之地。 从某种意义上来说,爬山虎只是爬虫框架的PHP语言版的一种补充, 所以作者希望爬山虎能为各位PHP小伙外提供一种额外的开发选择。