蜘蛛爬行、抓取网页
搜索引擎的基础是有大量网页的信息数据库,这是决定搜索引擎整体质量的一个重要指标。如果搜索引擎的网页信息量小,那么供用户选择的搜索结果就会少,而大量的网页信息能更好地满足用户的搜索需求。
要获得大量网页信息的数据库,搜索引擎就必须收集网络资源,可以通过搜索引擎的网络漫游器(Crawler)在互联网中各个网页爬行并抓取信息。这是一种爬行并收集信息的
程序,通常搜索引擎称为蜘蛛(Spider)或者机器人(Bot)。
每个搜索引擎的蜘蛛或者机器人都有不同的IP,并有自己的代理名称。通常在网络日志中可以看到不同IP及代理名称的搜索引擎蜘蛛。在如下代码中,220.181.108.89就是搜索引擎蜘蛛的IP,BaiduSpider、Sogou+Web+Spider、Googlebot、SosoSpider、bingbot分别表示百度蜘蛛、搜狗蜘蛛、谷歌机器人、搜搜蜘蛛、Bing机器人。这些都是各个搜索引擎蜘蛛的代理名称,是区分搜索引擎的重要标志。
220.181.108.89
Mozilla/5.0+(compatible;+BaiduSpider/2.0;++http://www.baidu.com/search/Spider.html)
220.181.89.182
Sogou+Web+Spider/4.0(+http://www,sogou.com/docs/help/Webmasters.htm#07)
66.249.73.103
Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.Google.com/bot.html)
124.115.0.108
Mozilla/5.0(compatible;+SosoSpider/2.0;++http://help.soso.com/WebSpider
.htm)
65.55.52.97
Mozilla/5.0+(compatible;+bingbot/2.0;++http://www.bing.com/bingbot.htm)
110.75.172.113 Yahoo!+Slurp+China
搜索引擎蜘蛛虽然名称不同,但是其爬行和抓取的规则大致相同。
(1)搜索引擎在抓取网页时会同时运行很多蜘蛛程序,根据搜索引擎地址库中的网址对网站进行浏览抓取。地址库中的网址包含用户提交的网址、大型导航站的网址、人工收录的网址、蜘蛛爬行到的新网址等。
(2)搜索引擎蜘蛛爬行到网站,首先会检查网站的根目录下是否有Robots.txt文件,若有Robots文件,则根据其中的约定不抓取被禁止的网页。如果网站整体禁止某搜索引象
抓取,那么该搜索引擎将不再抓取网站内容,如果不小心把Robots文件设置错误,就可会造成网站内容不能被收录。(3)进入允许抓取的网站,搜索引整蜘蛛一般会采取深度优先、宽度优先和最佳优先
三种策略进行爬行遍历,以有序地抓取到网站的更多内容。
深度优先的爬行策略是搜索引擎蜘蛛在一个网页发现一个链接,顺着这个链接爬到下一个网页,在这个网页中又沿一个链接爬下去,直到没有未爬行的链接,然后回到第一个网页,沿另一个链接一直爬下去。深度优先的爬行策略,搜索引擎蜘蛛进入网站首页,沿着链接爬行到网页A1,在A1中找到链接爬行到网页A2,再沿着A2中的链接爬行到A3,然后依次爬行到A4、A5……直到没有满足爬行条件的网页时,搜索引擎蜘蛛再回到首页。回到首页的蜘蛛按照同样的方式继续爬行网页B1及更深层的网页,爬行完同样再回到首页爬行下一个链接,最后爬行完所有的页面。
宽度优先的爬行策略是搜索引擎蜘蛛来到一个网页后不会沿着一个链接一直爬行下去,而是每层的链接爬行完后再爬行下一层网页的链接。宽度优先的爬行策略。搜索引擎蜘蛛来到网站首页,在首页中发现第一层网页A、B、C的链接并爬行完,再依次爬行网页A、B、C的下一层网页A1、A2、A3、B1、B2、B3……爬行完第二层的网页后,再爬行第三层网页A4、A5、A6……,最后爬行完所有的网页层。最佳优先爬行策略是按照一定的算法划分网页的重要等级,主要通过PageRank、网站规模、反应速度等来判断网页重要等级,搜索引擎对等级较高的进行优先爬行和抓取。PageRank 等级达到一定程度时才能被爬行和抓取。实际蜘蛛在爬行网页时会将页面所有的链接收集到地址库中,并对其进行分析,筛选出PR较高的链接进行爬行抓取。在网站规模方面,通常大网站能获得搜索引擎更多的信任,而且大网站更新频率快,蜘蛛会优先爬行。网站的反应速度也是影响蜘蛛爬行的重要因素,在最佳优先爬行策略中,网站的反应速度快,能提高蜘蛛的工作效率,因此蜘蛛也会优先爬行反应快的网站。
这三种爬行策略都有优点,也有一定的缺点。例如,深度优先一般会选择一个合适的深度,以避免陷入巨大数据量中,也就使得抓取的网页量受到了限制;宽度优先随着抓取网页的增多,搜索引擎要排除大量的无关网页链接,爬行的效率将变低;最佳优先会忽视很多小网站的网页,影响了互联网信息差异化的发展,流量几乎进入大网站,小网站难以发展。
在搜索引擎蜘蛛的实际爬行中,一般同时利用这三种爬行策略,经过一段时间的爬行,搜索引擎蜘蛛能爬行完互联网的所有网页。但是由于互联网资源庞大,搜索引擎的资源有限,通常只爬行抓取互联网中的一部分网页。
(4)蜘蛛爬行了网页后,会进行一个检测,以判断网页的价值是否达到抓取标准。搜索引擎爬行到网页后,会判断网页中的信息是否是垃圾信息,如大量重复文字的内容、乱码、与已收录内容高度重复等。这些垃圾信息蜘蛛不会抓取,仅仅是爬行而已。
(5)搜索引擎判断完网页的价值后,会对有价值的网页进行收录。这个收录过程就是将网页的抓取信息存入到信息数据库中,并按一定的特征对网页信息分类,以URL为单位存储。搜索引擎的爬行和抓取是提供搜索服务的基础条件,有了大量的网页数据,搜索引擎才能更好地满足用户的查询需求。
|