树形图
上图是我在学习的过程中保存下来的树形图,现在就用这张图片,来演示我对爬虫爬取链接的原理的理解。
深度优先
记得在大一下期的时候,有一门课叫《数据结构》,现在说的就是其中的深度遍历算法。当然,本文中的并不是二叉树,因为网站的一个页面是不可能只有两个链接的,一个网站的一个页面,少的时候,可以没有链接,多的时候,几百上千都有可能。
如果是深度优先输出,那么上图中的输出为:A、B、D、E、I、C、F、G、H。这个输出结果可以使用递归算法得出。
我对它的理解是,深度优先就是先一直往下挖。就是在一个页面即A找到第一个链接即B后,直接跳转,进入B页面,再找到这个页面的第一个链接即D,进入D页面,找到所有链接。。。。。一直向下循环。
广度优先
广度优先输出结果为(还是以上图为例):A、B、C、D、E、F、G、H、I。这个输出结果可以使用队列实现。
我对它的理解是,广度优先就是先把一个页面的链接全部找到后,以上图为例,在A页面找到了B、C链接,然后进入B页面,找到D、E,但是我们不继续向下找了,反而进入C页面,找到C页面的全部链接,就是这样查找。
我的理解
我可以把我的理解比喻成挖地下室,当然只是我的理想的理解,不要与现实进行对比。
假如我挖地下室,需要挖5层。对深度优先的理解可以这样解释,我先把地点选好,然后我把升降机需要的地方搭好,直接把5层地下室需要的深度全部挖好,然后,我在挖这几层的广度。
对广度优先的理解可以这样解释,我先把第一层挖好,然后在挖第二层,一次类推。
以上只是本人的拙见,如有错误,敬请指出。
最新评论
这个软件有bug的,客户端windows有些键不能用如逗号、句号
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了