江西SEO优化—提供SEO顾问服务、网站SEO优化诊断方案(合作微信/QQ:707468216)

搜索引擎技术:抓取算法

时间:2017-09-04 10:17 来源:未知 作者:江西SEO曾庆平

搜索引擎技术是一种信息处理技术,主要包括抓取算法和排名算法。为公平起见,搜索引擎公司一般不会公开其算法的细节,因为如果公开这些算法,某些网站可能会利用它来改善其排名,搜索结果将会被网站的站长操纵,从而影响搜索结果的中立性。
 
搜索引擎采用的算法可以被看做是一个黑盒,但是通过多种分析之后,就可以对主要内容和策略进行推测。搜索引擎工作的第一步就是获得互联网上的信息。现在的互联网是如此庞大,信息量每天都在飞速增长,检索和分类将是一项非常巨大的工程,必须采用自动化的方式来实现。网络内容抓取器就是这样的工具,它访问网页上的超链接,像“一传十,十传百……”一样,从少数几个网页开始,逐步延伸到互联网的其他网页。
 
网络内容抓取器常被形象地称为“蜘蛛”,而互联网就是一个蜘蛛网,蜘蛛就在这张网不断获取信息。蜘蛛从网站中的某一个页面(通常是首页)开始,读取网页的内容,并找到该网页中的链接地址,然后通过它们寻找下一个网页,这样一直循环下去,直到把所有的网页都访问并抓取下来。
 
每个主流的搜索引擎都有自己的蜘蛛,例如:Googlebot(Google蜘蛛)、baiduspider(百度蜘蛛)、Yahoo Slurp(Yahoo 蜘蛛)、Msnbot (MSN 蜘蛛)、Scooter (Altavista 蜘蛛)、Lycos_Spider_( T-Rex )、FAST-WebCrawler(Alltheweb 蜘蛛)、ia_archiver(alexa 蜘蛛)Slurp (INKTOMI蜘蛛)等。
 
一、抓取规则
 
1.广度优先和深度优先
 
在抓取的过程中可以采用两种方式:广度优先和深度优先。
 
(1)广度优先是指先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页,以图2-1所示的网页链接结构为例,蜘蛛的抓取顺序如下:
 
从A页面出发,首先抓取BCDEF页面。
 
从E页面出发,抓取H页面。
 
从F页面出发,抓取G页面。
 
从H页面出发,抓取I页面。
 
没有发现更多可抓取的页面,抓取过程结束。
 
广度优先是目前最常用的蜘蛛抓取方式,因为此方法可以并行处理,提高抓取速度。
 
广度优先和深度优先
 
(2)深度优先是指蜘蛛从起始页开始,逐个链接跟踪下去,处理完这条线路之后再转入下一个页面,继续跟踪链接。以图2-1所示的页面链接结构为例,蜘蛛的抓取顺序如下:
 
从A页面出发,抓取F页面。
 
从F页面出发,抓取G页面,发现没有更多可链接的页面,于是回到F页面,发现F页面也没有更多的页面链接,于是回到A页面。
 
从A页面出发,抓取E页面,从E页面出发抓取H页面,从H页面出发抓取I页面。
 
回到A页面,抓取D页面。
 
从A页面出发,抓取C页面。
 
从A页面出发,抓取B页面。
 
没有发现更多可抓取的页面,抓取过程结束。
 
深度优先的算法一般采用堆栈结构实现,其优点在于设计蜘蛛时比较容易。
 
二、搜索引擎容量
 
对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的。从目前公布的数据来看,容量最大的搜索引擎也只能抓取整个互联网中40%左右的网页,主要原因如下:
 
现有的抓取技术无法遍历所有的网页,有许多网页无法从其他网页的链接中找到。
 
信息的存储技术存在瓶颈,如果按照每个页面的平均大小为20KB计算,100亿网页的容量是100×2000G字节。如此庞大的信息量,以目前的存储技术很难实现。
 
数据量太大时,搜索过程会受到搜索效率的影响。
 
因此,搜索引擎的网络蜘蛛往往只抓取那些重要的网页,而评价其重要性的主要依据是该网页的链接深度。由于不可能抓取所有的网页,因此网络蜘蛛一般都设置了访问的层数。
 
三、蜘蛛访问限制规则
 
现在的网站都希望搜索引擎能更全面地抓取自己网站的网页,因为这意味着更多的访问者能通过搜索引擎找到此网站。为了让网页更全面被抓取到,网站管理员可以建立一个站点地图文件(Site Map,把网站内部所有网页的链接放在这个文件里面)。许多蜘蛛会把sitemap.htm文件作为网页抓取的入口,很方便地把整个网站抓取下来,不仅可以避免遗漏某些网页,也会减少网站服务器的负荷。
 
有时,站长可能希望蜘蛛只抓取某些特定部分,而另一些内容则不希望被搜索引擎收录,这样做有以下几方面的原因:
 
网站可能包含一些隐私或敏感信息,这些信息不宜暴露在搜索引擎上。
 
网站可能包含一些需要权限才能查看的信息。
 
蜘蛛的抓取会增加服务器的负担。
 
此时可以通过以下两种方式来限制蜘蛛对页面的抓取。
 
(1)在链接上加入rel=nofollow标签,则搜索蜘蛛会跳过此页面。这种方式简单,但不适用于有大量页面需要限制抓取的情况。
 
(2)蜘蛛进入一个网站,一般会访问一个特殊的文本文件Robots.txt。这个文件一般放在网站服务器的根目录下,网站管理员可以通过Robots.txt 来定义哪些目录蜘蛛不能访问,或者哪些目录对于某些特定的网络蜘蛛不能访问。例如有些网站的可执行文件目录和临时文件目录不希望被搜索引擎搜索到,那么网站管理员就可以把这些目录定义为拒绝访问目录。
 
说明:Robots.txt只是一个协议,如果蜘蛛的设计者不遵循这个协议,网站管理员也无法阻止网络蜘蛛对页面的访问,但一般的蜘蛛都会遵循这些协议。
 
四、内容提取
 
对蜘蛛抓取的内容,搜索引擎需要进行一些处理,以便于索引,这个过程被称为内容提取。搜索引擎能处理的信息主要是文本,但是蜘蛛抓取的内容除了文本之外,还包括图片、doc、pdf、多媒体、动态网页及其他格式等。在内容提取阶段,则需从这些不同类型的信息中提取文本。
 
1.对于HTML文档
 
HTML 的语法通过不同的标签来表示网页的结构和界面,在提取文本信息时,需要处理这些标签。要去除这些标签并非难事,用正则表达式就能轻松实现,然而这些标签实际上并非完全没有用处,比如网页的标题和正文往往用不同的标签来区分,通过这些标签能了解页面的大概结构,找到网页中的关键字和主要内容。又比如对链接的分析可以判断出一个链接是否指向重要的信息,或者是指向一个无关的广告。
 
2.对于DOC、PDF等文档
 
它们并不是纯文本的数据,所以需要专业厂商提供的文本提取接口。搜索引擎调用这些接口,从而提取文档中的文本信息和其他相关信息。
 
3.对于图片等多媒体文件
 
搜索引擎一般通过链接的锚文本和相关的文本注释来判断这些文件的内容。例如,有一个链接文字为“张××照片”,其链接指向一张BMP 格式的图片,那么网络蜘蛛就知道这张图片是张××的照片。这样,在搜索“张××”和“照片”的时候都能让搜索引擎找到这张图片。另外,许多多媒体文件中包含文件属性,考虑这些属性也可以更好地了解文件的内容。
 
网页内容的提取一直是搜索引擎中的重要技术。整个提取系统一般采用插件的形式,通过一个插件服务程序,针对不同格式的网页采用不同的插件处理。这种方式的优势在于其具备较好的可扩展性,以后每发现一种新的类型,都可以将其处理方式做成一个插件补充到插件服务程序中。
 
4更新周期
 
由于网站的内容经常变化,因此蜘蛛也需要不断地更新其抓取网页的内容,这就需要蜘蛛按照一定的周期去扫描网站,查看哪些页面是需要更新的页面,哪些页面是新增页面,哪些页面是已经过期的死链接。
 
更新周期对搜索引擎的查全率有很大影响。如果更新周期太长,则总会有一部分新生成的网页搜索不到;周期过短,技术上存在一定难度,而且会造成带宽、服务器的资源的浪费。目前一般的做法是:蜘蛛并不对所有的网站采用同一个周期进行更新——对于一些重要的、更新量大的网站,更新的周期较短(如有些新闻网站,几个小时就更新一次);对于一些不重要的网站,更新的周期就长,可能一两个月才更新一次。
 
一般来说,蜘蛛在更新网站内容时,只需要判断网页的属性(主要是日期),把得到的属性和上次抓取的属性相比较,如果不一样则进行更新。
 

声明:本文原创归江西SEOSEO所有,转载请注明原文网址: http://www.qingpingseo.com/jiaocheng/529.html

围观: 1000次 | 责任编辑:江西SEO曾庆平

回到顶部