基于网络爬虫的搜索引擎的研究
2016-12-31冯丹
冯 丹
基于网络爬虫的搜索引擎的研究
冯 丹
湖北工业大学计算机学院,湖北 孝感 432400
网络爬虫是一种按照一定的规则自动搜集和抓取互联网信息的程序或者脚本。通过网络爬虫不仅能够为搜索引擎采集网络信息,而且可以作为定向信息采集器,定向采集某些网站下的特定信息,如健康新闻、健康知识等。基于此,阐述了网络爬虫的相关知识与技术,并对这些技术的优劣进行了分析,为基于网络爬虫的搜索引擎的设计和实现提供了有用的意见和建议。
网络爬虫;数据分析;搜索引擎
1 研究背景与意义
随着互联网的飞速发展,网络上的信息呈爆炸式增长。这使得人们在网上找到所需的信息越来越困难,这种情况下搜索引擎应运而生。搜索引擎搜集互联网上数以亿计的网页,并为每个词建立索引[1]。在建立所搜引擎的过程中,搜集网页是非常重要的一个环节。爬虫程序就是用来搜集网页的程序。如何从庞大的资料库中找到正确的资料,是互联网深度爬取技术的竞争要点。一般的网络爬虫是尽可能多的爬数据,本文所提到的爬虫是首先将网络数据分类,找到用户需要的主题然后爬取数据,这样大大减少了数据吞吐量,提高了爬取效率[2]。
作为搜索引擎的基础组成部分,网络爬虫在Web信息采集中起着关键的作用。简略地讲,网络爬虫主要是一个Web应用程序,该应用程序从人工给定的一个初始的URL集合出发,根据URL获取其所指向的页面,存入页面库中,同时从这些以获取的页面中提取新的URL链接,将URL全部放入待提取URL队列中,下一次爬取页面时就从这个队列中按一定的顺序提出URL进行爬行,重复上述过程,直到达到某一预定条件时停止爬取。
2 相关概念与技术
2.1 搜索引擎的工作原理和分类
搜索引擎的工作流程相对来说比较复杂。第一步是对因特网上的网页进行全面的抓取;第二步是将抓取的目标网页进行预处理;第三步,根据用户输入的查询请求定位相关网页并呈现给用户。
目前的搜索引擎可以分为以下几类:全文搜索引擎,目录搜索引擎,元搜索引擎。全文搜索引擎是名副其实的搜索引擎,目前主流的搜索引擎都采用的是此方法。它们从互联网提取各种网站的信息,建立起数据库,并能检索与用户查询条件想匹配的记录,按照一定的排序返回结果;目录索引的功能比较弱,知识按照目录分类的网站链接列表,不依靠关键字进行查询;元搜索引擎接受用户查询请求后,同时在多个搜索引擎上搜索,并将返回结果返回给用户。还有其他非主流搜索引擎形式,如集合式搜索引擎、门户搜索引擎等,这里不再做描述[3]。
2.2 网络爬虫简介
网络爬虫是一种自动化浏览网络的格式,或者说是一种网络机器人。它们被广泛用于互联网搜索引擎或其他类似网站,以获取或者更新这些网站的内容和检索方式。它们可以自动采集所有能够访问到的页面内容,将这些内容提供给搜索引擎做进一步的处理和分析。
本文中提到的爬虫是主题爬虫。所谓主题爬虫是对特定的领域进行页面检索,并且会选择性地忽略与搜索主题相关性较小的网页。主题爬虫的任务是最大化的发现和抓取与主题相关的页面,过滤掉与主题无关的页面,最大程度地利用有限的系统资源,获得较优秀的检索结果。主题爬虫需要对用户所搜索的主题进行深入的分析,以去除相关性小的网页,保留相关性强的索引,这个过程实质上是在网络爬虫抓取模块中,实现一部分原本需要通过预处理模块处理的功能。对用户输入的关键字信息进行分词处理,然后计算爬虫抓取的页面的相关程度,给页面赋予相关度权重,判断是否抓取页面。
网络爬虫实际上是在互联网这张非常大的“图”中进行遍历操作。我们将互联网看作一张“图”,每一个页面就都可以看成是一个“结点”,而连接这些结点的链接就可以看作是“边”。所以类比“图”的遍历方式,网络爬虫的搜索策略也可以分成两种方法:一种是深度优先遍历;另一种是广度优先遍历。通俗地讲,深度优先遍历是从某个顶点出发,首先访问这个顶点,然后找出刚访问这个结点的第一个未被访问的邻结点,然后再以此邻结点为顶点,继续找它的下一个新的顶点进行访问,重复此步骤,直到所有结点都被访问完为止;广度优先遍历是从某个顶点出发,首先访问这个顶点,然后找出这个结点的所有未被访问的邻结点,访问完后再访问这些结点中第一个邻结点的所有结点。重复此方法,直到所有结点都被访问完为止。可以看出,两种方法最大的区别在于前者是从顶点的第一个邻结点一直访问下去再访问顶点的第二个邻结点;后者从顶点开始访问该顶点的所有邻结点再次依次向下,一层一层地访问[4]。
2.3 中文分词算法概述
在本文前面的部分我们提到过,要做好网络爬虫,分词是必不可少的一步。当然,日常生活中大部分用户浏览的是中文页面,所以中文分词对于网络爬虫也非常重要。目前的分词算法存在三种类型,一种是基于字符串匹配的分词方法,一种是基于统计的分词方法,一种是基于理解的分词方法。
基于字符串匹配的分词算法或者通常称为机械分词算法,它通过某种策略将需要进行分析的字符串与机器中包含的中分词典中的词条进行对比分析,若系统在该中文词典中匹配到了目标字符串,则匹配成功。
基于统计的分词是基于统计学的思路进行分词。如果仅从词的构成形式来看,词往往是一种或者多个固定的字的排列组合,因而在研究文本内容时,文中几个字相邻出现的概率越高,其组成一个词的概率也就越大。由此可知,几个字之间相邻出现的频率反映了一个词得以形成的概率大小。这样便给我们提供了分析思路,计算中文文本语料中几个字相邻组合出现的频度,并定义几个字之间出现的相关信息。由这些相关信息所反映出来的信息体现了中文文字组合的紧密程度,当这种紧密程度高于某阈值时,便可以认定这个字符组合可以形成词。
基于理解的分词方法基本思想为在进行中分分词同时对语义以及语法进行一系列的分析,通过利用语义信息和句法信息来避免发生歧义。通常情况它包含了三个部分:句法语义子系统、分词子系统以及总控模块。在总控模块的调度下,分词子系统通过获取包括词、句子等的语义信息和句法信息来进行分词和判断歧义现象[5]。
3 结语
本文对基于网络爬虫的搜索引擎的背景,意义以及相关的关键技术进行了研究。搜索引擎是现代生活中不可缺少的一个工具,对于此技术的研究非常有意义。
网络爬虫作为一种抓取数据的技术,在搜索引擎中起到了不可或缺的作用。所以在本文第二部分,对搜索引擎的原理和分类,网络爬虫的相关技术进行了简要的分析。另外,对搜索引擎中另一个关键技术分词方法进行了简要的分析。
[1]罗刚,王振东.自己动手写网络爬虫[M].北京:清华大学出版社,2010.
[2]罗刚.自己动手写搜索引擎[M].北京:电子工业出版社,2010.
[3]杨涛.中文智能搜索引擎浅析[J].图书情报工作,2002(2):58-60.
[4]Animesh Tripathy ,Prashanta K Patra. A Web Mining Architectural Model of Distributed Crawler for Internet Searches Using PageRank Algorithm[C]. IEEE Asia-Pacific Services Computing Conference, 2008.
[5]邱哲,符滔滔.开发自己的搜索引擎[M].北京:人民邮电出版社,2007.
Research on Search Engine based Crawler
Feng Dan
School of Somputer Science, Hubei University of Technology, Hubei Xiaogan 432400
The web crawler is a program or script that automatically collects and captures the information of the Internet according to certain rules. Through the web crawler not only can collect network information for the search engine, but also can be used as a directional information collector, directed to collect specific information under certain websites, such as health news, health knowledge, etc.. This paper describes the relevant knowledge and technology of web crawler, and analyzes the advantages and the advantages of these technologies. It provides useful advice and suggestions for the design and implementation of web crawler based search engine.
web crawler;search engines;data analysis
TP391.3
A
1009-6434(2016)08-0121-02