悠然乱弹:WebMagic VS TinySpider
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上次 @黄勇 提到与 @黄亿华 WebMagic比较的问题。我在后面简单回复了一下下,现系统整理一下,不一定正确。 两者都是可以用于网页数据抓取,都有良好的扩展性及架构设计,但是由于定位稍有差异,因此在开发的时候各有侧重点,今天就写一篇专门的文章进行比较,由于对WebMagic学习得还不够,因此有些地方可能是错误地,欢迎指正或板砖伺候。 一、扫描方法的差异 a.WebMagic的扫描 WebMagic采用的是遍地撒网、愿者上勾的方式,怎么解释这个遍地撒网呢? 在进行内容抓取的时候,与事先定义好的处理器中的匹配规则进行匹配,匹配成功则处理之。 把所有的超链接找到并添加到待处理列表中,然后对新找到的链接继续进行处理。 所以WebMagic会把所有的页面都扫描一次,在扫描的过程中进行匹配,匹配上的进行处理。 b.TinySpider的扫描 TinySpider采用的则是抽丝剥茧,精确打击的策略。什么个意思呢? 在进行内容抓取的时候,首先有个入口页面,然后在上面定义了许多Watcher,实际上就是关注点了,只有它关注的点匹配的,才会执行其后续的动作触发,也就是扫描哪些页面或者后续扫描的走向是由程序员完全把控的。 所以TinySpider在扫描的时候,不一定会扫描所有的页面,只扫描自己关心的内容。当然