搜索引擎蜘蛛的工作流程包括以下几个步骤:
首先,蜘蛛从一个种子网页开始,读取网页的内容,并提取其中的链接地址。这些链接地址指向其他页面,蜘蛛会根据这些链接地址访问并抓取下一个页面。蜘蛛会持续追踪链接,从一个页面爬到另一个页面,直到所有页面都被抓取。
在抓取过程中,蜘蛛会将已经抓取的页面和待抓取的页面记录在一个数据库中,以避免重复抓取。这样可以提高搜索引擎的效率,避免浪费资源。
蜘蛛还会检测页面的重要性和更新频率,并根据这些因素决定是否抓取该页面。重要性和更新频率高的页面会被优先抓取,以保证搜索引擎的搜索结果及时更新。
在抓取过程中,蜘蛛可能会遇到一些技术问题,比如加密数据和网页权限的限制。有些网页需要会员权限才能访问,而蜘蛛可以通过提供相应的用户名和密码来获取权限并抓取这些网页。
为了提高蜘蛛的抓取效果,搜索引擎会对抓取的网页进行评估和筛选。通常只对一些重要的网页进行抓取,而对于一些不太重要的网页,可能会限制访问层数。此外,网站的结构和设计也会影响蜘蛛的抓取效果,扁平化的网站结构有利于蜘蛛抓取更多的网页。
追踪链接
由于蜘蛛为了能够抓取网上尽量多的页面,它会追踪网页上的简介,从一个页面爬到下一个页面,就好像是蜘蛛在蜘蛛网上爬行那样。整个互联网网站都是相互链接组成的,也就是说,搜索引擎蜘蛛从任何一个页面出发最终都会爬完所有页面。
网站和页面链接结构太过于复杂,所以蜘蛛只有采用一定的方法才能够爬完所有页面,最简单的爬行策略有3种:
1、最佳优先
最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取,它只访问经过网页分析算法预测为“有用”的网页。
存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法,因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点,据马海祥博客的研究发现,这样的闭环调整可以将无关网页数量降低30%~90%。
2、深度优先
深度优先是指蜘蛛沿着发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另一个链接再一直往前爬行。
3、广度优先
广度优先是指蜘蛛在一个页面发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有链接都爬一遍,然后再进入第二层页面沿着第二层上发现的链接爬向第三层页面。
从理论上说,无论是深度优先还是广度优先,只要给蜘蛛足够的时间,都能爬完整个互联网。
三、搜索引擎蜘蛛工作中的信息收集
信息收集模块包括“蜘蛛控制”和“网络蜘蛛”两部分,“蜘蛛”这个称呼形象的描述出了信息收集模块在网络数据形成的“Web”上进行信息获取的功能。
总体而言,网络蜘蛛从种子网页出发,通过反复下载网页并从文档中寻找未曾见过的URL,达到访问其他网页得以遍历Web的目的。
而其工作策略一般则可以分为累积式抓取(cumulative crawling)和增量式抓取(incremental crawling)两种。
1、累积式抓取
累积式抓取是指从某一个时间点开始,通过遍历的方式抓取系统所能允许存储和处理的所有网页。在理想的软硬件环境下,经过足够的运行时间,累积式抓取的策略可以保证抓取到相当规模的网页集合。
但在马海祥看来由于Web数据的动态特性,集合中网页的被抓取时间点是不同的,页面被更新的情况也不同,因此累积式抓取到的网页集合事实上并无法与真实环境中的网络数据保持一致。
2、增量式抓取
与累积式抓取不同,增量式抓取是指在具有一定量规模的网络页面集合的基础上,采用更新数据的方式选取已有集合中的过时网页进行抓取,以保证所抓取到的数据与真实网络数据足够接近。
进行增量式抓取的前提是,系统已经抓取了足够数量的网络页面,并具有这些页面被抓取的时间信息。面向实际应用环境的网络蜘蛛设计中,通常既包括累积式抓取,也包括增量式抓取的策略。
累积式抓取一般用于数据集合的整体建立或大规模更新阶段,而增量式抓取则主要针对数据集合的日常维护与即时更新。
在确定了抓取策略之后,如何从充分利用网络带宽,合理确定网页数据更新的时间点就成了网络蜘蛛运行策略中的核心问题。
总体而言,在合理利用软硬件资源进行针对网络数据的即时抓取方面,已经形成了相对比较成熟的技术和实用性解决方案,马海祥觉得在这方面目前所需解决的主要问题是如何更好的处理动态网络数据问题(如数量越来越庞大的Web2.0数据等),以及更好的根据网页质量修正抓取策略的问题。
四、数据库
为了避免重复爬行和抓取网址,搜索引擎会建立一个数据库,记录已被发现还没有抓取的页面和已经被抓取的页面,那么数据库中的URL是怎么来的呢?
1、人工录入种子网站
这个简单的来说,就是我们建好一个新站后,向百度、Google或360提交的网址收录。
2、蜘蛛抓取页面
如果搜索引擎蜘蛛在爬取的过程中,发现了新连接URL,数据库中没有,就会存入待访问数据库(网站观察期)。
蜘蛛按重要性从待访问数据库中提取URL,访问并抓取页面,然后把这个URL从待访问地址库中删除,放进已访问地址库中,所以马海祥建议各位站长在网站观察期的时候尽量有规律的更新网站是必要的。
3、站长提交网站
一般来说,提交网站只是把网站存入待访问数据库,如果网站持久不更新蜘蛛也不会光顾,搜索引擎收录的页面都是蜘蛛自己追踪链接得到的。
所以你提交给搜索引擎其实用处不大,还是要根据后期你网站更新程度来考虑,搜索引擎更喜欢自己沿着链接发现新页面,当然如果说你的SEO技术够老练,并且有这能力,可以试一下,说不定会有意想不到的效果,不过,对于一般在站长来说,马海祥还是建议让蜘蛛自然的爬行和抓取到新站页面。
五、吸引蜘蛛
虽然理论上说蜘蛛可以爬行和抓取所有页面,但实际上是不可能完成的,那么SEO人员想要收录更多的页面就只有想办法引诱蜘蛛抓取。
既然抓不了所有页面,那么我们就要让它抓取重要页面,因为重要页面在索引中起到重要决定,直接影响排名的因素,哪么那些页面算是比较重要的呢?对此,马海祥也特意整理了以下几个我认为比较重要页面,具体有这么几个特点:
1、网站和页面权重
质量高、年龄老的网站被给予很高的权重,这种网站上的页面蜘蛛爬行的深度比较高,所以会有更多的内页被收录。
2、页面更新度
蜘蛛每次爬行都会把页面数据储存起来,如果第二次爬行时发现此页面与第一次收录的内容完全一样,说明页面没有更新,蜘蛛也没必要经常再来爬行和抓取。
如果页面内容经常更新,蜘蛛就会频繁的爬行和抓取,那么,页面上的新链接自然的会被蜘蛛更快的追踪和抓取,这也就是为什么需要每天更新文章。
3、导入链接
无论是外部链接还是同一个网站的内部链接,要被蜘蛛抓取,就必须有导入链接进入页面,否则蜘蛛根本不知道页面的存在。此时的URL链接起着非常重要的作用,内链的重要性发挥出来了。
这也就是为什么大多数站长或SEO都要高质量友情链接,因为蜘蛛从对方网站爬行到你网站之次数多,深度也高。
4、与首页点击距离
一般来说网站首页权重最高,大部分外部链接都指向首页,蜘蛛访问最频繁的也是首页,离首页点击距离越近,页面权重越高,被蜘蛛爬行的机会也就越大。
这也就是为什么要求网站框架建设点击三次就能查看完整个网站的意思。
六、蜘蛛爬行时的复制内容检测
一般都知道在搜索引擎索引环节中中会进行去重处理,其实在蜘蛛爬行的时候已经在进行检测,当蜘蛛爬行和抓取文件时会进行一定程度的复制内容检测,遇到权重低的网站上大量转载或抄袭内容时,很可能不再继续爬行。
所以对于新站来说切莫采集和抄袭,这也就是为什么很多站长查看日志的时候发现了蜘蛛,但是页面从来没有被抓取的原因,因为爬行发现是重复内容那么它讲放弃抓取也就只停留在爬行过的阶段。
总的来说,搜索引擎蜘蛛通过抓取和收录网页的方式,帮助搜索引擎建立索引,以便用户能够快速找到他们所需的信息。蜘蛛的工作流程包括从种子网页开始,追踪链接地址,抓取页面并记录在数据库中,检测页面重要性和更新频率,解决技术问题,以及对抓取的网页进行评估和筛选。
以上就是搜索引擎蜘蛛爬虫基本工作原理的详细内容,更多信息请关注OD云其它相关文章!