seo优化搜索引擎工作原理(一般来说自己网站被其他网站引用最多的页面就是首页是什么)
优采云 发布时间: 2021-12-14 00:20seo优化搜索引擎工作原理(一般来说自己网站被其他网站引用最多的页面就是首页是什么)
一般来说,自己网站被其他网站引用次数最多的页面就是首页,所以相比之下它的权重最高。例如页面A是A网站的首页,可以得到结论是从页面A更高级的页*敏*感*词*有更高的页面权重。比如页面A上的超链接更容易被蜘蛛抓取,也更容易被蜘蛛抓取。未被蜘蛛发现的网页被加权。自然是0。
还有一点很重要,蜘蛛在爬取页面时会进行一定程度的复制检测,即当前爬取的页面内容是否与保存的数据有重叠(当页面内容被转载/不当抄袭时)被蜘蛛发现)。如果在一个低权重的网站上有大量的转贴/抄袭,蜘蛛可能不会继续爬行。
这样做的原因是为了用户的体验。如果没有这些去重步骤,当用户想要搜索某些内容时,发现返回的结果都是一模一样的内容,这会极大地影响用户的体验。最终的结果是这个搜索引擎永远不会用了,所以为了方便用户,也是为了公司的正常发展。
地址库
互联网上有很多网页。为了避免重复抓取和抓取网页,搜索引擎会建立一个地址库。一个用于记录已发现但未爬取的页面,另一个是已爬取的页面。
要访问的地址库中的地址(已发现但未爬取)来自以下方法:
1. 手动输入地址
2. 蜘蛛抓取页面后,从HTML代码中获取新的链接地址,并与两个地址库中的数据进行比较。如果不是,则将该地址存储在要访问的地址库中。
3.站长(网站负责人)提交您希望搜索引擎抓取的页面。(一般这个效果不是很大)
蜘蛛根据重要性从待访问地址库中提取URL,访问并抓取页面,然后从待访问地址库中删除该URL地址并放入访问地址库中。
文件存储
蜘蛛会将抓取到的数据保存到原创页面数据库中。
存储的数据与服务器返回给蜘蛛的 HTML 内容相同。每个页面在存储在数据库中时都有自己唯一的文件编号。
预处理
我们去商场买蔬菜的时候,会看到蔬菜保险箱里的蔬菜摆放的很整齐。此处给出的示例是用塑料包装纸包裹的示例。
最后呈现给客户的是上图。包装完好,按不同类别排列整齐。顾客可以一目了然地看到每个区域有什么蔬菜。
在最终确定这个结果之前,整个过程大概是三个步骤:
1.选择可以卖的蔬菜
从一堆蔬菜中,选择可以出售的蔬菜。
2.预处理
这个时候,所有可以卖的蔬菜摆在你的面前,但是如果今天要把这些蔬菜放进蔬菜保险箱,今天开始整理这些蔬菜会浪费很多时间(对于蔬菜包装等),可能是客户还没有安排蔬菜。所以你的解决方案是将可以提前销售的蔬菜打包存放在仓库中。当保险箱里的蔬菜丢失需要补货时,花几分钟时间去仓库取出蔬菜。再把它放在架子上。(我猜想,不知道具体商城里面的流程是怎样的,为了方便后续理解,最好用生活实例来说明效果)
3.放置保险箱
如上最后一段,当需要补货时,将包装好的蔬菜从仓库中取出,并根据蔬菜种类放置在合适的位置。这是最后的排序步骤。
回到搜索引擎的工作流程,这个预处理步骤和上面的商城预处理步骤效果一样。
当蜘蛛完成数据采集后,就会进入这一步。
蜘蛛所做的工作是在采集数据后将数据(HTML)存储在原创页面数据库中。
而这些数据并不是用户搜索后直接用于排序并显示在搜索结果页面上的数据。
原创页面数据库中的页面数在万亿以上。如果用户搜索后对原创页面数据库中的数据进行实时排序,则排名程序(每一步使用的程序不同,采集数据的程序称为蜘蛛,用于排名的程序为排名程序)分析每个页面数据与用户想要搜索的内容之间的相关性,计算量太大,会浪费太多时间,不可能在一两秒内返回排名结果。
因此,我们需要先对原创页面数据库中的数据进行预处理,为最终的排名做准备。
提取文本
我们在原创页面数据库中存储的是HTML代码,HTML代码中不仅收录用户在页面上可以直接看到的文本内容,还收录其他无法被js、AJAX等搜索引擎用于排名的内容,等等。 。
首先要做的是从 HTML 文件中删除未解析的内容,并提取可用于排名处理步骤的文本内容。
例如,下面的代码
<p>
软件工程师需要了解的搜索引擎知识
MathJax.Hub.Config({
showProcessingMessages: false,
messageStyle: "none",
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
displayMath: [ ["$$","$$"] ],
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'a']
}
});
MathJax.Hub.Register.MessageHook("End Process", function (message) {
var eve = new Event('mathjaxfini')
window.dispatchEvent(eve)
})
hi