李健,张克亮
(信息工程大学洛阳校区,洛阳471003)
网络爬虫不仅作为搜索引擎的关键组件,而且在其他领域也有广泛应用[1]。借助网络爬虫,语言学家可以下载大量文本以研究语言现象,销售人员可以搜集产品的价格和销量以分析市场行情,领域爱好者能够将某个网站或栏目的内容收藏到本地,AI研究者能够采集各类数据作为机器学习的素材。
国内外众多机构和个人开发了多款爬虫工具软件,如Nutch、Heritrix、SOUP、ParseHub、GooSeeker、八爪鱼、火车头等;常用的爬虫框架包括WebCollector、Nutch、WebMagic、Heritrix、Scrapy和PySpider等[2-4]。这些爬虫软件和框架在很大程度上便利了人们对网络数据的获取,但还具有某些局限性:有的功能相对单一,使用方式受限,可定制化程度不够;有的安装配置繁琐,框架结构复杂,使用门槛较高;有的采用封闭式框架,不提供开源代码,难以进行二次开发;有的抓取速度慢,解析和抽取能力弱,性能表现不佳。总之,基于现有框架快速开发个性化爬虫仍然具有一定难度。因此,为开发者提供一个轻量级、模块化、免费开源、高效易用的网络爬虫框架十分重要。
网络爬虫(Web Crawler)是按照一定规则自动获取Web信息资源的计算机程序[5]。“爬虫”是一种形象的比喻,有时也被称为网络蜘蛛(Web Spider)或网络机器人(Web Robot)。网络爬虫主要是面向Web的,这是由Web资源的开放性和丰富性所决定的。网络爬虫通常会对Web原始数据进行二次抽取,以提高目标数据的结构化程度和价值密度。爬虫的规则一方面是指爬虫所采用的搜索策略(如深度优先、广度优先等),另一方面是指爬虫要遵循的行业规范(如Robot协议)。……