今天跟大家深度解析一下搜索引擎爬行和抓取的工作原理。
我们把搜索引擎工作过程大致分为三个阶段,今天要跟大家交流的是第一阶段:爬行和抓取 。简单的说,这个阶段是搜索引擎蜘蛛通过跟踪链接访问网页,将获得的页面代码存入到数据库中,这是搜索引擎工作的第一步,主要目的是完成数据收集。
什么是搜索引擎蜘蛛?它其实是搜索引擎用来爬行和访问页面的程序。蜘蛛访问网站页面时类似于普通用户使用浏览器,蜘蛛程序发出页面访问请求后,服务器返回页面HTML代码,蜘蛛就把代码存入到原始页面数据库。
搜索引擎为了提高爬行和抓取速度,都使用多个蜘蛛并发分布爬行,蜘蛛访问网站时,会先去访问网站根目录下的robots.txt文件,robots.txt文件是用来告诉蜘蛛网站中哪些页面可以被抓取,哪些不能被抓取,蜘蛛会遵循文件里内容来抓取网站页面。
为了抓取网站上尽量多的页面,搜索引擎会跟踪页面上的链接,从一个页面爬到下一个页面,整个互联网是由相互链接的网站及页面组成的。从理论上说,蜘蛛从任何一个页面出发,顺着链接都可以爬行到网站上的所有页面。当然,由于网站及页面链接结构异常复杂。蜘蛛需要采取一定的爬行策略才能爬完网站上所有的页面。
最简单的爬行策略分为两种:深度优先和广度优先。
深度优先是指蜘蛛沿着自己发现的链接一直向前爬行,直到前面再也没有其他链接,然后返回到第一个页面,沿着另一个链接再一直向前爬行。
广度优先是指蜘蛛在一个页面上发现多个链接时,不是顺着一个链接一直向前,而是把页面上所有第一层链接都爬一遍,然后沿着第二层页面上发现的链接爬到第三层页面 。
从理论上说,无论是深度优先还是广度优先,只要给蜘蛛足够的时间,都能爬完整个互联网 。
但是呢,实际情况是这样的,蜘蛛的带宽资源、时间都是有限的,也不可能爬完所有页面,最大的搜索引擎也只是爬行和收录了互联网的一小部分。而且,深度优先和广度优先通常也是混合常用的,这样既可以照顾到尽量多的网站,也能照顾到一部分网站的内页。因此,SEO人员要想让网站的更多页面被收录,就要想办法吸引蜘蛛来抓取页面。
对蜘蛛来说,既然不能抓取所有页面,那么就要尽量抓取重要的页面。
那么,哪些因素会影响搜索引擎蜘蛛对页面重要性的判断呢?
1.网站和页面权重
质量高和资格老的网站被认为权重比较高,这种网站上的页面被爬行的深度也会比较高,所以会有更多内页被收录。
2.页面更新度
蜘蛛每次爬行都会把页面数据存储起来。如果第二次爬行发现页面与第一次收录的完全一样,说明页面没有更新,蜘蛛也就没有必要经常抓取。如果页面内容经常更新,蜘蛛就会更加频繁的访问这种页面,页面上出现的新链接自然也会更快得被蜘蛛跟踪,抓取新页面。
3.导入链接
无论是外部链接还是同一个网站的内部链接,要被蜘蛛抓取,就必须有导入链接进入页面,否则蜘蛛根本没有机会知道页面的存在,高质量的导入链接也经常使页面上的导出链接的被爬行深度增加。
4.与首页点击距离
一般来说,网站上权重最高的是首页,大部分外部链接是指向首页的,蜘蛛访问最频繁的也是首页。离首页点击距离越近,页面权重越高,被蜘蛛爬行的机会也越大。
了解完如何吸引蜘蛛后,我们来看下什么是地址库。
为了避免重复爬行和抓取网址,搜索引擎会建立一个地址库,记录已经被发现还没有抓取的页面,以及已经被抓取的页面。
地址库中的URL有几个来源:
1.人工录入的种子网站;
2.蜘蛛抓取页面后,从HTML中解析出新的URL,与地址库中的数据进行对比,如果是地址库中没有的网址,就存入待访问地址库。
3.站长通过搜索引擎网页提交表格提交进来的网址
蜘蛛按重要性从待访问地址库中提取URL,访问并抓取页面,然后把这个URL从待访问地址库中删除,放进已访问地址库。
要记得,地址库里的地址是否被收录要看页面的重要性。
搜索引擎蜘蛛抓取的数据存入原始数据库后,其中的页面数据与用户浏览得到的HTML是完全一样的,每个URL都有一个独特的文件编号。
蜘蛛在爬行页面时还会同时检测复制内容,检测并删除复制内容通常是在搜索引擎工作的下一阶段进行,但是蜘蛛在爬行和抓取文件时也会进行一定程度的复制内容检测。
遇到权重很低的网站上大量转载或抄袭内容时,很可能不再继续爬行。这也就是为什么有的网站管理员在日志中发现了蜘蛛,但是页面却没有被收录。
所以原创是至关重要的!
赞
0
有一点帮助
0
没有帮助
参与评论