汪龙飞
【摘要】 介绍利用聚焦爬虫获取高校教育新闻的方法。首先介绍聚焦爬虫的工作原理和相关技术,然后介绍如何利用这些原理和技术获取高校教育新闻。
【关键词】 聚焦爬虫 移动互联网
一、引言
聚焦爬虫(又称为网页蜘蛛、网络机器人)是一种按照一定的规则、自动地抓取万维网信息的程序或者脚本。随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性,如:(1) 不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。(2) 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。(3) 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。(4) 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。CollegeNews系统是一套包含高校教育类新闻获取、相应数据库建立以及移动端软件应用的系统。在整套系统中,如何获取与主题相关的新闻网页数据是至关重要的一个部分,该部分由聚焦爬虫程序予以实现。
二、 聚焦爬虫简介
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:(1) 对抓取目标的描述或定义;(2) 对网页或数据的分析与过滤;(3) 对URL的搜索策略。
抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。
三、聚焦爬虫在获取高校教育新闻中的应用
在CollegeNews系统中,所有的数据来源均为高校教育类新闻,因此聚焦爬虫的功能即为从互联网上获取与高校相关的新闻,并将相关内容存入系统的数据库中。用户在使用高校新闻应用时,客户端向系统的服务器发送相关的请求,系统服务器返回所请求新闻的URL,由客户端对相应的URL进行解析,从而获取相关的新闻资讯。通过使用聚焦爬虫获取高校新闻的原始数据,可以避免传统爬虫爬取网页所带来的获取内容不符合所需主题、获取到的无用处的内容量过大的问题,对于处理能力较弱的系统来说很有益处。
3.1 需要解决的问题
若想让聚焦爬虫完成其功能,首先需要确定合适的种子URL集合,爬虫自种子URL开始按照一定的搜索策略进行网页爬取,在网页爬取的过程中,需要提前确定待爬取页面与所需主题的相关程度与重要性,依据相关度和重要性决定是否爬取该网页。最后,还需要解决数据的更新周期问题,保证数据源的新鲜程度。在解决了上述问题之后,用户即可获取合适的新闻数据。
3.2 确定合适的种子URL集合
在聚焦爬虫的算法设计中,种子URL集合的选取是十分重要的一环。如果选取的种子URL集合不合适,可能会导致程序爬取大量与主题无关的数据,造成系统资源的浪费。
在CollegeNews系统中,为了充分保证系统的运行效率,即尽量避免爬取非高校教育新闻的网页,在构建种子URL集合时,采用使用指定起始网页的方式,选择了各类高校及相关新闻的入口地址作为起始网页,从而确保了初始网页的
在爬虫运行的过程中,另一个重要的问题是如何去除已经获取过的重复页面。该问题又可以分解为两个部分:一是在某次爬虫程序运行的过程中,如何去除本次运行已经获取过的页面;二是在某次爬虫程序运行的过程中,如何去除过往运行后已经获取过的页面。针对第一个问题,本系统在每次爬虫程序运行时,都会将已经爬取过的网页和尚未爬取的网页分别存在两个哈希表中,聚焦爬虫每爬取一个网页,会先比较该网页是否存在于已经爬取网页的哈希表中,若不存在,则进行爬取操作。操作完成后,将该网页从尚未爬取网页的哈希表中删除,同时添加到已经爬取网页的哈希表中。针对第二个问题,本系统在每次运行爬虫程序时会预先设定一个阈值,同时爬虫程序中也会设定一个初始的计数值为0。每当爬虫程序向数据库中添加一条新数据,若数据库返回重复信息,则将计数值加一。若下一个网页不是重复网页,则将计数值清零。直到计数值大于阈值后,认定所有新网页已经获取完毕,结束本次爬取。
3.3 网页搜索策略
一般而言,爬虫程序的网页搜索策略可以分为以下三种:深度优先搜索、广度优先搜索和最佳优先搜索。本系统的搜索策略充分考虑了新闻类网站的结构特点,使用了深度优先与最佳优先相结合的搜索方法。
如前所述,本系统爬虫程序的起始地址为各类高校及相关新闻的入口地址,以此实现局部最优效果。由于绝大部分新闻类网站的结构为目录式结构,即网站由若干页面(目录)组成,每个页面含有若干条新闻的超链接(项)。因此,本系统的爬虫程序首先由起始地址获取到该网站的目录,此后再依次对每个目录进行解析,获取该目录的所有项。按此流程进行网页爬取后,即可获得所需的新闻数据。
3.4 数据库更新频率
由于新闻具有一定的时效性,因此爬虫程序需要不断对网站进行扫描,将新增的网页加入数据库中。因为教育类新闻的时效性并没有要点新闻或天气预报那么强,因此CollegeNews系统在对数据库进行数据更新时,充分考虑了教育新闻的这一特点,并未将更新频率设计得过快,避免给服务器和网络带宽带来太大的压力。本系统以一定的频率对种子URL集合中的网站起始地址进行检查,若扫描到新发布的新闻,则继续聚焦爬虫程序,将新增的网页添加到数据库中;否则,中断本次扫描,等待下一次检查。
四、总结
CollegeNews系统将聚焦爬虫技术与高校教育类新闻应用将结合,实现了获取相关主题新闻时,将系统运行效率与数据获取准确性相结合的目的,具有较高的实用价值。