搜索引擎优化(seo)的基本工作模块(近年来,校园信息化建设不断推进校园网络信息呈现爆发式增长,校园内信息)
优采云 发布时间: 2021-09-29 09:02搜索引擎优化(seo)的基本工作模块(近年来,校园信息化建设不断推进校园网络信息呈现爆发式增长,校园内信息)
1 简介
大数据时代的到来意味着海量的数据信息将产生,广泛分布在互联网的不同节点上,如何获取我们真正需要的信息成为一个问题。目前,用户获取信息的主要方式是使用传统的互联网搜索引擎,但由于不同领域、不同背景的用户往往有不同的搜索目的和需求,一般搜索引擎返回的查询结果并不是我们真正关心的关于和需要。
近年来,校园信息化建设持续推进,校园网信息呈现爆发式增长。校园信息的搜索和定位也面临着同样的困境。校园网有自己的特点。例如,校园内的一些站点使用二级或三级域名,甚至使用不绑定域名的IP访问。当用户使用通用搜索引擎进行全局搜索或站点搜索时,存在信息无法被通用搜索引擎收录和收录使用的问题。时间严重延迟。显然,通用搜索引擎在校园网中都面临着这些问题。特殊性,效果不理想。
本文以高校校园网为研究对象,介绍了搜索引擎中的一些关键技术。利用基于Python语言的Scrapy开源爬虫框架,开发了搜索引擎的爬虫模块,指出了Scrapy框架原有的URL去重方法的存在。缺陷,提出了一种解决方案,通过使用布隆过滤器来改进Scrapy爬虫框架的URL去重功能。同时根据实际经验,提出两种防止爬虫被禁止的策略。使用基于Python语言的Whoosh索引检索库开发本系统的索引检索模块。针对Whoosh在中文分词中表现不佳的问题,提出使用jieba开源分词组件改进Whoosh的中文分词功能。Linux平台下校园网搜索引擎的探索性研究。
2 网络爬虫
互联网就像一张大蜘蛛网。网络爬虫通过各种遍历算法从互联网上下载用户需要的信息。我们通常把互联网看作是一张无限的蜘蛛网,蜘蛛网上的每一个交点都是互联网。一个节点,每个节点通过一个超链接连接在一起。网络爬虫可以从互联网上的任何节点开始,使用遍历算法,到达互联网上的任何其他节点。被访问节点根据用户需要对节点中的信息进行比较判断,从网页中下载所需信息。, 并将其格式化给用户。
2.1 爬取策略
针对海量的网络信息,搜索引擎常用的主要网络爬虫策略如下:
2.1.1 宽度优先策略
图 1:广度优先搜索
图 2:深度优先搜索
图 3:不完整的 PageRank 策略图
广度优先搜索(Breadth First Search),也称为广度优先。它的主要思想是:从V顶点开始,依次访问V顶点没有被访问过的相邻点,然后从这些相邻点依次访问它们的相邻点,并依次跟随顶点访问过的相邻点。对于其他访问过的相邻点,这些相邻点继续访问它们的所有相邻点,依此类推,直到所有顶点都被访问。
以图1为例说明广度优先搜索的过程。
图1以V1为起点,先访问V3、V4、V6。访问完V3、V4、V6后,依次访问V3、V4、V6的相邻点。访问V3的相邻点V2,V4没有相邻点,访问V6的相邻点V7。访问 V2 和 V7 后,访问 V7 的相邻点 V5。这样,整个访问顺序为:V1->V3->V4->V6->V2->V7->V5
2.1.2 深度优先策略
深度优先搜索不同于广度优先搜索。深度优先搜索是一个递归过程,类似于一棵树的一阶遍历。它的主要思想是:
深度优先算法类似于“单向黑色”。对于一个之前从未访问过的图,假设访问从它的V点开始,第一步是访问所有与V顶点直接相连的顶点,在它的所有顶点都被访问过之后,再从上次访问开始的顶点开始依次访问与其直接相连的顶点,重复上述访问过程,直到访问完图中的所有顶点。图 2 显示了深度优先搜索过程。
在图2中,先访问V1,再访问V1的相邻点V3、V4、V6。假设图中顶点的存储顺序是V1、V2、V3、V4、V5、V6,因为V3在V4当存储在V6之前,所以先访问V3,然后访问V3的相邻点V2和V4,因为V2在V4之前存储,所以先访问V2。V2被访问后,V2没有被访问过之后的相邻点被访问,而V2没有被访问,返回时也没有被访问V4。然后返回起点V1,继续访问V1的另一个相邻点V6。访问V6的相邻点V7,访问V7的相邻点V。所以整个访问顺序是:V1->V3->V2->V4->V6->V7->V5。
在互联网中,每个网页都是一个节点,广度优先搜索引擎和深度优先搜索都可以访问所有节点。然而,实际上,每个网页都有不同的重要性。这两种算法只能抓取页面并排队,无法有效确定页面的优先级。
2.1.3 不完整的 PageRank 策略
PageRank算法借鉴了学术界常用的学术论文评判方法。如何评价互联网上海量信息的重要性,如果一个网站被许多其他网站联系在一起,那么我们认为这个网站很重要。这就是SEO中常说的PR值。当我们衡量某个网站的重要性时,我们通常会看它的PR值。网站 在做外链的时候更喜欢并且有更高的PR值。网站做交换链接,让搜索引擎认为这个网站也是靠谱的,会给它更高的PR值,让它在相关搜索结果中排名靠前。图 3 是一个不完整的 PageRank 策略图。
这里假设PR值的计算以3为基本单位。初始状态下,{P1、P2、P3}3个页面已经下载到本地,指向的链接分别为{P4、P5、P6},这3个页面也是等待爬虫的集合爬行。如何确定它的爬取顺序,我们通常把已经下载的和要爬取的6个页面组成一个新的集合,计算这个集合的PR值,按照PR值大小的顺序进行爬取。这里假设要爬取的顺序是P4、P5、P6、P4。下载P5后,对P5进行爬取,得到P5的链接P8。此时,P8 被赋予一个临时的 PR 值。如果 P8 的 PR 值大于 P6,请先下载 P8。如此往复,不断循环,直到上图所有页面都被爬满。
2.2 Scrapy 应用
Scrapy是一个高效的网络爬虫框架,完全基于Python开发,常用于抓取网站信息并从中提取结构化数据。Scrapy 框架简单而强大,可用于数据挖掘和自动化测试。我们将使用Scrapy框架来编写本文构建的校园网搜索引擎的爬虫模块。
2.2.1 Scrapy 中的 URL 重复数据删除
Scrapy内置的去重方法是通过RFPDupeFilter类实现的,爬取小网站数据时完全够用,但面对大网站时存在内存消耗大等问题。这时候使用Bloom Filter来改善内存消耗过大的问题。Bloom filter在开源社区有对应的类库pybloom。
2.2.2 Scrapy爬虫防范策略
爬虫模块设计完成后,爬虫会爬取网站。由于大部分网站都有防止爬取的策略,为了防止被封,可以采用以下两种策略:
(1)在爬虫的配置文件中将参数download_delay的值设置为1秒以上。由于校园网信息更新不是很频繁,这样会降低爬取的频率,但不会有很大影响. .
(2)根据实际需要编写用户代理中间件,替换原来的中间件。
3 索引和检索
网络爬虫爬取到的网站数据进行处理并添加到索引中。索引就像我们日常生活中的书籍目录。有了目录,我们可以更快的找到想要看的内容。索引的基础实际上是集合论中的布尔运算,它是建立在布尔运算的基础上的。
3.1 正向和反向索引
搜索引擎索引有正向索引和反向索引。简而言之,正向索引就是将爬取到的信息汇总成一个关键词的集合。在爬取信息的同时,爬虫需要保存很多与关键词相关的信息,比如关键词位置的具体信息,关键词在消息中出现的次数等。用户在搜索某个关键词时,首先通过遍历算法找到了收录这个关键词的信息,这在一定程度上导致了效率低下。
倒排索引常用于搜索引擎。它与正向索引完全不同。它是通常意义上的索引的倒置。逆索引可以更好的实现从关键词到文档的映射,通过逆索引可以根据关键词快速获取需要查询的数据信息。
3.2 嗖嗖
索引和检索模块可以通过开源社区的Whoosh来实现。Whoosh 是一个完全基于 Python 的全文索引和检索编程库。Whoosh结构很好,很多模块可以根据用户的实际需求进行更换。因为它没有二进制包,没有繁琐的编译,程序也不会无故崩溃。
使用 Whoosh 时,必须先创建索引对象。索引收录索引模式并以字段的形式存在:
上面的代码建立了一个索引模式。title、url、content字段对应索引搜索目标文件的部分信息,索引内容包括各个字段。字段被索引后,它们可以被搜索和保存。建立索引模式后,创建索引存储目录。可供用户搜索查询。
3.3 中文分词
Whoosh本身的分词功能是针对英文的,对中文分词的支持并不友好。在本系统的开发中,我们使用了jieba中文分词。目前是开源社区中比较活跃的项目。它使用动态规划来寻找最大概率的路径。, 实现基于前缀词典的高效词图扫描。解霸分词可以最准确地切分句子,适合文本分析,在此基础上可以再次对长词进行分词,提高召回率,适用于搜索引擎分词。通过与Whoosh的结合,提高系统分词的能力。
4 实验分析
搜索的质量需要对搜索质量进行科学的评估。用户输入关键词获取所需的准确信息,整个过程越快,结果越准确,搜索引擎的质量就越高。本节将进行相关测试,以验证搜索系统各方面的性能。
4.1 相关性的定量评估
搜索引擎结果的质量体现在结果的相关性上。准确率(P)和召回率(R)是评价信息检索效率的两个重要量化指标。要评估搜索引擎的性能水平,需要执行多次搜索。每次进行搜索时,都会计算精度和召回率,并在平面坐标图上进行标记。通过大量的搜索,可以得到检索系统的性能曲线。Precision/Recall 曲线在横坐标上取每次计算的召回率,在纵坐标上取每次计算的准确率。经过100次检索,从图4可以得出结论,我们研究的校园网搜索引擎在查全率和查准率之间取得了较好的动态平衡。
一般情况下,我们也会使用ROC曲线来定量评估搜索引擎。ROC曲线的横坐标为假阳性率,纵坐标为真阳性率。图 5 中的曲线也是从 100 次搜索中获得的。从图5可以看出,在ROC空间绘制的ROC曲线向西北凸出,效果更好。
4.2 收录 时效性评价
大学校园里有海量的信息资源,搜索引擎收录的及时性和完整性非常重要。通过30多个关键词的测试,发现通用搜索引擎的收录滞后7-15天,使用IP访问的4个站点的信息没有被通用搜索引擎使用< @收录。而且我们搭建的搜索引擎可以根据需求改变抓取频率,信息收录非常及时。我们也可以随时将网站加入到系统的爬虫等待队列中,通过IP访问的网站信息也会得到更好的收录。
实验证明,本文构建的搜索引擎原型系统解决了一般搜索引擎索引更新频率无法控制,校园网新闻不完整的问题。更适合校园网搜索的个性化需求。
5 结论
本文研究的校园网搜索引擎有效解决了一般搜索引擎收录或收录无法有效获取校园网信息不及时的问题,完成了以下工作:针对Scrapy网络爬虫框架自带的网页去重功能存在缺陷,理论上提出了使用Bloom filter的解决方案;根据校园网的特点,防止爬虫被禁止的两种解决方案;使用开源的jieba技术和Whoosh索引库相结合,有效提升中文分词能力。
4:Precision/Recall曲线图
图 5:ROC 曲线