Sharingan是基于Scrapy的爬虫框架,目标是能方便快速地应对Web文档的变化,并且使目标数据能追溯数据的具体来源,以实现数据云绑定。
具有多个数据来源,目标数据为关系数据且结构一致,数据需求定制性强(即针对不同类型的网页,需要抓取的数据变化很大)。
Sharingan将原本的数据抓取过程严格拆分成了数据选择和数据加工两个过程。
用户需定义FragmentItem来指定文档具体哪些部分有用,这些部分称为文档碎片(Fragment)。可以理解此过程目的仅仅是对文档进行切片而不做其他处理(原则如此但复杂情况可变通)。
切分下来的Fragment将作为数据原料被送往Pipeline,Pipeline中可定义目标数据中各实体和各字段是如何由若干个Fragment加工得到。 Pipeline生成的数据为中间数据格式JSON,然后JSON数据可以再转为目标关系数据。
通过此种手段,目标数据的实体和字段可详细追溯到原始数据的来源文档和切分部分。
尽量让框架使用符合直觉
保证Pipeline中处理方法拿到的Fragment尽量是最小粒度的
参见Wiki