3.2 爬行策略
在网络爬虫爬取的过程,在待爬取的URL列表中,可能有很多URL地址,那么这些URL地址,爬虫应该先爬取哪个,后爬取哪个呢?在通用网络中,虽然爬取的顺序并不是那么重要,但是在其他很多爬虫中,比如聚焦网络爬虫中,爬取的顺序非常重要,而爬取的顺序,一般由爬行策略决定。在这一节中,我们将为大家介绍一些常见的爬行策略。
爬行策略主要有深度优先爬行策略、广度优先爬行策略、大站优先爬行策略、反链策略、其他爬行策略等。下面我们将分别进行介绍。
如图所示,假设有一个网站,ABCDEFG分别为站点下的网页,图中箭头表示网页的层次结构。
假如此时网页ABCDEFG都在爬行队列中,那么按照不同的爬行策略,其爬取的顺序是不同的。
比如,如果按照深度优先爬行策略去爬取的话,那么此时会首先爬取一个网页,然后将这个网页的下层链接依次深入爬取完再返回上一层进行爬取。所以,若按深度优先爬行策略,图3-3中的爬行顺序可以是A->D->E->B->C->F->G。
如果按照广度优先测爬行策略去爬取的话,那么此时首先会爬取同一层次的网页,将同一层次的网页全部爬取完后,在选择下一个层析的网页去爬行,比如,上述的网站中,如果按照广度优先的爬行策略去爬取的话,爬行的顺序可以是:A->B->C->D->E->F->G。
除了以上两种爬行策略之外,我们还可以采用大站爬行策略。我们可以按对应网页所属的站点进行归类,如果某个网站的网页数量多,那么我们则将其称为大站,按照这种策略,网页数量越多的网站越大,然后,优先爬取大站中的网页URL地址。