网络爬虫(三)------宽度优先爬虫(一个的基础,简单但是很重要哦)

来源:互联网 发布:二端口网络z参数方程 编辑:程序博客网 时间:2024/05/05 23:58

                     生气在实际项目中,我们使用爬虫遍历互联网,把网络中相关的网页全部抓取过来,这也体现了爬虫的特点。爬虫爬行的过程是这样子的:奋斗互联网中每一个页面看作是一个节点,页面中的链接可以看成图的有向边。所以能用遍历的方式对互联网进行访问。

       生气 一提到图的遍历,很容易就是宽度优先遍历深度优先遍历

       生气但是深度优先遍历可能会在深度上过深地遍历或者陷入黑洞,大部分爬虫不采用这种方式。但是宽度优先遍历也不是完全的宽度优先,而是采用对宽度优先的网页赋予一定的优先级。也就是通常我们说的带有偏好的宽度遍历。

                                奋斗图的宽度优先奋斗

           简述:图的宽度优先遍历(BFS)算法是一个分层搜索的过程,和树的层序遍历算法相同,在图中选中一个节点,作为起始点,然后按照层次遍历的方式,一层一层访问。

           思想:(1)节点A入队

                 (2)当队列非空时候继续入队

                 (3)队满,出队列,获得头节点A,访问A,并标记A已经被访问了

                 (4)查找顶点A的第一个邻接节点A1

                  (5)如果A1没有访问过,进队

                  (6)继续查找A的其他邻接节点,转(5)继续,如果所有邻接节点都访问过了,转(2)

          接下来举个例子,来源于自己动手写爬虫这本书,实际上,我的文章也是这本书的个人心得而已,大家都是学习的菜鸟可怜

           

  遍历过程如下:
                          操作                                     队列元素                                           初始                       空                        A入队                       A                       A出队                      空                   BCDEF入队                    BCDEF                      B出队                     CDEF                      C出队               DEF                     D出队                  EF                    E出队                            F                   H入队                         FH                   F出队                           H                    G入队                           HG                      H出队                          G                     I入队                          GI                    G出队                           I                      I出队                     空

        生气总结:在表1.2所示的遍历过程,出队列的节点顺序既是图的宽度优先遍历的访问顺序,由此可以看出,图1.3所示的宽度优先遍历顺序为:A-〉B-〉C-〉D-〉E-〉F-〉H-〉G-〉I 。这里是一个基础,我们做什么事情都要从基础做起嘛,不能心急大笑


1 1