要抓取一个网页,分析一个网页,是一件很容易的事情。那么对于搜索引擎来讲,要获取的资源是互联网上的大量的网页,如何抓取就是一个策略的问题。在这里,咱们使用宽度优先的策略进行抓取。html
宽度优先的策略是图论中的一种方法,在网页抓取中,能够把一个页面看作一个点,页面与页面之间的连接关系看作有向边。具体来讲,如图所示:git
图片来自:http://www.cnblogs.com/tuhooo/p/5447459.htmlgithub
A页面连接到了B,C,D,E,F页面,E页面又连接到了H,I页面,F页面又连接到了G页面。那么经过宽度优先的策略抓取这些页面,抓取顺序如图:搜索引擎
图片来自:http://www.cnblogs.com/tuhooo/p/5447459.htmlhtm
假设给定的初始连接(抓取起点)为A页面,那么根据宽度优先抓取,会先抓取距离A页面为1的页面B,C,D,E,F,而后再抓取距离A页面为2的页面G,H,而后再抓取距离A页面为3的页面I,以此类推。能够看出,这种抓取策略看起来很是合理,实际上也是抓取网页的最经常使用的策略。blog
这是这个宽度优先策略爬虫大体思路。下一节会讲解这个程序的实现原理。索引
(抱歉,此处原来有github源码,可是感受当时写的太丑了,打算寒假从新整理好再发出来)图片