Scrapy 在高校校园网搜索引擎中的应用

2019-11-30 03:39帕尔哈提吐拉江希尔扎提库扎提新疆师范大学
数码世界 2019年10期
关键词:爬虫校园网搜索引擎

帕尔哈提吐拉江 希尔扎提库扎提 新疆师范大学

引言

大数据时代下,网络数据呈现出爆炸式的增长,由于数据在互联网中具有广泛的分散性,这也使数据获取成为一大重要的技术难题。现阶段,人们在互联网中获取信息时主要是依靠搜索引擎,但由于用户具有不同的检索需求,这也造成搜索引擎的检索结果并不符合所有用户的数据获取需求。随着校园数字化建设的深入,校园信息在获取与定位方面也同样存在该问题,用户在利用搜索引擎进行检索时,往往经常出现数据信息收录滞后、不全面等问题,而且通用的搜索引擎并不能满足校园网的数据检索需求,应用效果欠佳。为此,本文利用Scrapy 来构建Linux 平台的校园网开源爬虫框架,以此开发出对应的搜索模块,通过布隆过滤器来实现URL 去重,以此满足高校校园网对数据信息的检索要求。

一、网络爬虫

互联网类似于一张蜘蛛网,用户在网络中获取信息时,网络爬虫会利用大量的遍历算法来对其所需信息进行下载,在互联网中有着大量的节点,这些节点便相当于蜘蛛网中各个蛛丝在交织过程中的交叉点,这些网络节点都是利用超链接进行连接的,而网络爬虫可以任意网络节点为出发点,通过遍历算法来到达指定的网络节点,在到达该节点后会判断其节点信息,然后将该节点信息与用户需求进行对比,以此下载用户所需的数据信息,通过格式化处理后传输给指定的用户。

(一)爬取策略

在互联网中,人们在利用搜索引擎来检索信息时常常采用以下网络爬虫策略:其一是宽度优先策略,该策略采用宽度优先算法来实现,该算法又叫做广度优先,其将V 顶点作为出发点,对该顶点的相邻点进行依次访问,然后以其相邻点为二次出发点,对相邻点的周围点进行依次访问,并以此类推,直至全部顶点均被访问为止。比如,V1 是起始出发点,V3、V4、V6 是V1 的相邻点,则宽度优先策略会先从V1 顶点出发,依次对V3、V4 与V6 进行访问,然后再对V3、V4 与V6 的周围相邻点进行访问,需要注意的是,在对V3 相邻点进行访问时,V2 与V4 不存在相邻点,而V6 则存在一个相邻点V7,则该策略会先对V2 进行访问,然后对V7 进行访问,最后再对V7 相邻点V5 进行访问,则其访问顺序依次为V1、V3、V4、V2、V7、V5;其二是深度优先策略,该策略属于递归过程,其以不断深入为宗旨,在对某个图进行访问时,如果是以V 为初始访问点,则该策略会首先对与V点进行直接连接的顶点进行依次访问,待这些顶点都被访问后,然后再以这些被访问点为二次初始点来对与其直接连接的各个顶点进行访问,以此类推,直至全部顶点都被访问为止。比如,以V1 为出发点,其相邻点分别为V3、V5、V6,其中V5 与V6 和V1 进行直接相连,而V5 不存在相邻点,V6 存在直接连接点V2,V3 则存在直接相连的V4、V7 两点,则采用深度优先策略后,其访问顺序依次为V1、V3、V5、V6、V2、V4、V7。对于互联网来说,其各个网络节点中都有着对应的网页,通过宽度优先策略与深度优先策略,可对互联网中的所有网络节点进行访问,进而实现对所有网页的访问,但因这些网页的重要性不同,在采取上述两种策略时,只能实现对页面的抓取与排列,难以对这些页面所具有的优先级进行准确判定;其三是非完全PageRank 策略,该策略作为一种通用方法,能够根据网页的重要性按照优先级进行排列,该策略以PR 值来衡量网页的重要性,当网页的交换链接页面具有更高的PR 值时,则该网页的可信程度便较高,其PR 值也相对较高,相应的在搜索引擎中会具有更高的排名。

(二)Scrapy

Scrapy 作为WEB 爬虫框架,其是以Python 为基础进行开发的,Scrapy 主要是对网页中的信息进行抓取,将结构化数据从网站中提取出来。在Scrapy 框架中,可利用RFPDupeFilter 类实现去重,这使其非常适用于对小型网站中的数据进行挖掘与处理,不过当网站规模较大时,可能会出现较大的内存消耗,为了解决该问题,可通过布隆过滤器来降低内存消耗,在布降过滤器中配置有pybloom 类库,该类库可对内存消耗问题进行有效解决。在对爬虫模块进行设计时,考虑到大多数网站都制定了相应的安全策略来应对爬虫,因此在应用Scrapy 爬虫时可按照以下策略来进行:第一种策略是把download_delay 的参数值从原有的1s 设置为2s 或以上,因校园网的更新数据频率较低,因此不会产生较大的影响。第二种策略是根据需要,利用user agent 中间件来对原有的中间件进行代替。

二、Scrapy 在高校校园网搜索引擎中的应用

在高校校园网中,利用Scrapy 爬虫来对网站数据进行访问,通过相应的处理可添加到索引目录之中,这样用户在使用校园网时便可以通过索引目录来快速找到所需内容。在索引及检索中,主要是以布尔运算为基础,索引包括两种方式,一种是正向索引,另一种则是反向索引,其中正向索引是通过Scrapy 爬虫来对访问过的网页信息按照关键词来进行汇总,以此形成相应的集合,当用户需要对所需信息进行检索时,只需在检索目录中输入对应的关键词,校园网中的搜索引擎便会利用遍历算法来对所有包括该关键词的信息进行查找,不过这种索引方式的效率较低。而反向索引则是对索引的倒置,其可较好的映射关键词至文档,利用反向索引,能够帮助用户更快的利用关键词来获取所需信息。在校园网中,其索引及检索模块可采用Whoosh 来实现,其是以Python 为基础所建立的检索编程库,在Whoosh 中包含有大量的模块,这些模块不具备二进制包,因此不需要进行繁琐的编译,从而大幅减少了程序所出现的崩溃问题。在Whoosh 中,需要先对相应的索引对象进行建立,然后会生成对应的索引存储目录来为用户提供检索服务。在校园网中,还可利用Whoosh 来进行jieba 中文分词,通过动态规划来筛选出概率最高的路径,利用前缀词典来对词图进行快速扫描,通过jieba 分词能够使句子的文本分析变得更加精确,从而赋予校园网更强的中文分词能力。

三、结语

综上所述,本文对Scrapy 在高校校园网搜索引擎中的具体应用进行了深入的研究,从而为高校在校园网搜索引擎的改进中提供了一种科学的方法,有效解决了数据信息收录滞后、不全面等问题,提高了搜索引擎在高校校园网中的应用效果。

猜你喜欢
爬虫校园网搜索引擎
利用网络爬虫技术验证房地产灰犀牛之说
Chrome 99 Canary恢复可移除预置搜索引擎选项
基于Python的网络爬虫和反爬虫技术研究
世界表情符号日
数字化校园网建设及运行的几点思考
中职学校校园网教育功能应用现状及对策的研究
试论最大匹配算法在校园网信息提取中的应用
基于Scrapy框架的分布式网络爬虫的研究与实现
谁抢走了低价机票
校园网贷 今生后世