gpt4 book ai didi

ruby - 构建网络蜘蛛时,应该使用递归吗?

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:42 26 4
gpt4 key购买 nike

构建一个深度优先的网络蜘蛛,这意味着它将访问第一页上的所有链接,然后转到每个链接,并访问所有第二页上的链接...

你应该使用递归吗?我发现这是 CPU 密集型的。

def recursion()

linkz_on_first_page.each do |link|

recursion(link)

end
end
recursion(firstpage)

最佳答案

绝对不是,由于万维网的实际性质,您很快就会遇到问题。当您访问带有主导航部分的网站时,每个页面都链接到其他页面,您就进入了一个无限循环。

您可以跟踪您处理了哪些链接,但即便如此,递归循环并不真正适合万维网的本质(尽管起初认为它似乎更像是一个实际的“网”而不是一棵树)。您最好找到当前页面上的所有链接并将这些链接(如果它们尚不存在)添加到中央队列,并在队列中迭代处理每个链接(记住要跟踪您已完成处理的链接,或者您将再次将它们添加到队列的末尾)

关于ruby - 构建网络蜘蛛时,应该使用递归吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com