Web搜寻器设计中的DFS与BFS

纳兹高尔

我想出一个面试问题,想了解您对此的看法。问题是,在设计网络搜寻器时:

1)用DFS和BFS会打什么样的页面?

2)如何避免陷入无限循环?

我很高兴有人可以回答他们。

传单

1)用DFS和BFS会打什么样的页面?

在大多数情况下,我将使用BFS算法来实现蜘蛛程序,因为我想从网页获取的最有价值的信息没有太多的链接深度,否则,我认为由于设计不良,该站点没有太多的价值。

如果我想从一些具体的数据一个从几跳,并在同一时间,我想看到的蜘蛛运行后不久,结果页面和其他相关数据的话,我可能会选择DFS算法。说,我想从stackoverflow获取所有标签。标签页在这里同时,我想让谁回答标签中的哪些问题。我想检查蜘蛛网是否正常运行。然后,我使用DFS算法在蜘蛛运行后立即获取数据标签问题和答案

总之,这取决于使用情况。

2)如何避免陷入无限循环?

这个问题可能很简单。解决方案如下:

  • 使用最大链接深度
  • 记录您已爬网的URL,并在发出新请求之前,检查该URL是否已被爬网。

我记得scrapy似乎可以解决第二个问题。您可以阅读其源代码以寻找更好的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章