/* */

基于Python技术的校园网搜索引擎的设计与实现

2019-11-16| 发布者: admin| 查看: |

21世纪是一个经济高速发展,高度信息化的社会,互联网在我国境内几乎已经全覆盖,通过它人们不出门就能够获取各种各样的信息,但如今随着它的高速发展,各种各样的网络信息也随处都是,人们有时候很难在第一时间找到自己想要的信息,因此要想让自己的信息搜索效率提高就需要改进搜索引擎,好的搜索引擎能够极大的帮助人们获取自己想要的信息。本文将主要针对校园网搜索引擎的设计与实现进行探讨,而要将校园网搜索引擎设计好则需要运用Python技术,笔者下文将对此展开分析,第一,从建立校园网搜索引擎的相关流程展开:首先构建设计框架,然后再利用反向引擎进行索引。第二,对scrapy爬虫框架运用于校园网搜索引擎的设计进行详细介绍:首先解释Scrapy爬虫框架的含义以及其运行步骤,然后在Scrapy爬虫对URL进行查重种推荐更有效的算法进行查重,最后对写完爬虫后要进行相关的设置进行简单介绍。

1 建立搜索引擎的相关流程

1.1 首先建立框架

要想将校园搜索引擎建立好首先就要将设计的流程先分析好,然后再对Python语言中的Scrapy开源网络爬虫结构进行分析然后做设计,这之后要进行分析以Python语言为基础的Whoosh索引检索库,最后还要测试自己建构的系统的实际效用。

1.2 什么是网络爬虫

网络爬虫的前身是“网络漫游者”,1993年时已经诞生。“网络漫游者”被称作网络机器人,是全世界中第一个出现的网络爬虫程序。之所以将其网络爬虫是因为它能够利用图论程序中的遍历算法将互联网中充斥的信息下载下来,而若要建立搜索引擎,利用图论程序中的遍历算法先下载互联网的信息这个步骤是必不可少的。此方法目的是要利用互联网中的每个网页中的超链接将每个网页相互连接,即将互联网比作一张巨大的网络,里面的每个网页比作一个点,然后利用网页的超链接将每个网页链接,这样才能为搜索引擎的有效使用打好坚实的基础。

1.3 利用搜索引擎进行索引

要进行有效的索引必须进行布尔集合运算,这是所有搜索引擎的基础,无论其设计的引擎有多么高端智能,都要运用该运算,总之布尔运算是索引的核心。布尔运算的三个运算逻辑是and、or和not,O与I是该运算主要使用的值。

索引包括正向索引和反向索引。其中正索引是先把每篇文章中的关键词圈出并建立集合,然后再将关键词提取出来,索引程序会将每一个关键词出现的位置以及次数记下,进行正索引时就能够有效的对文档中的关键词进行有效的查询、索引、分析,注意正向索引以遍历扫描为基础,要扫描所有文档关键词得出结论,。而且这个过程会受到系列因素的限制,比如内存、处理器和时间等,这就导致工作效率不高。因此我们实际工作中主要是对反向索引进行设计和运用,反向索引以“单词———文档矩阵”为结构,可以通过关键词快速的搜索自己想要查询信息,因此对于校园网搜索引擎的设计,笔者是运用反向索引程序进行索引。

2 将scrapy爬虫框架运用于校园网搜索引擎中

2.1 Scrapy爬虫框架的介绍以及运行步骤

Scrapy是一种爬虫框架,它的效用发挥需要以Python语言技术为基础,这种爬虫结构进入到网站数据中就能够提取想要的数据信息。不仅如此,而且它对数据的挖掘、历史数据的存储、自动测试和检测以及信息的处理方面都起来重要的作用,应用广泛。

Scrapy的运行步骤主要包括四步。第一,为了能够对未来信息进行有效抓取,需要在基于Scrapy爬虫框架的校园网搜索引擎的调度器中提取URL(连接)。第二,利用该引擎将连接(URL)变成一个请求通过下载器传送并且通过下载器将其下载下来,之后嘴周会将其包装变成相应的回答。第三,scrapy爬虫接受应答。第四,爬虫接收后若解读出实体则将其交给管道进行在处理,而如果解析出的是URL(连接)则将其床给调度器,最后信息就会被抓取。

2.2 利用Scrapy爬虫框架对URL进行查重

利用Scrapy爬虫框架对URL进行查重,主要是利用RFP Dupe Filter类进行实现的,这个过程的实现需要输入一系列代码,这之后就能够对信息进行有效的查重。这个过程中Scrapy有自带的算法对URL查重,但是因为网页数量的巨大,而且查重过程还会占用很大的内存,因此该算法存在一定的缺陷,不太能适用。所以利用Scrapy爬虫框架对URL进行查重时推荐用Bloom Filter算法,笔者运用此算法可以利用布隆过滤器节省大量的内存。

2.3 写完爬虫后要进行相关的设置

一般写完爬虫之后不做另外的设置的话,那么对网站访问时就会被立刻禁止,所以写完爬虫不能直接默认,要进行相关设置,有两种方法可供选择。第一中方法可以在settings-py的文件中对download-delay程序进行相关的设置,为了能够有效降低爬虫爬取频率要对其赋值1s以上,不过这种方法的缺点是会使抓取目标的时间延长。第二种方法可以运用user agent池,笔者运用这种设置方法后可以更加高效的缩短抓取目标的时间,因此推荐在此过程中运用第二种方法对爬虫进行相关设置,以免Scrapy爬虫被禁止。

3 结语

综合上述分析可知,要运用python技术建立高效的校园网搜索引擎是一个科技含量高且难度大的工程,但为了校园网络的清净,笔者认为学校还是很有必要跟上科技的潮流,对学校的相关搜索引擎进行改善。本文针对如今“信息污染”严重化的问题对基于python技术的校园网搜索引擎的设计与实现进行了相应的分析,主要是为同行提供了笔者认为在索引中更加有效的方法,而且在实际的测试中通过相应的技术改进和正确的方法可以有效的控制索引更新的速度从而提高其更新的频率,使校园网收取信息更及时,并且笔者利用Python技术使搜索程序简单化、高效化。希望上述方法能给相关从业者提供有价值的参考,让搜索引擎更加高效,还学校、社会一个更加清净的“信息社会”。


 
QQ在线咨询
售前咨询热线
13524991327
售后服务热线
13524991327
返回顶部