【发布时间】:2010-09-07 12:27:17
【问题描述】:
我正在尝试将我从站点中抓取的链接存储在非二叉树中。链接是分层布局的(显然)。问题是如何生成树?我的意思是,我将如何浏览链接提供的页面,以便我知道谁是谁的孩子。
现在我可以获得第一级和第二级链接,但不知道如何从这里开始,除了我必须递归地构建它并且有办法在我到达叶子时停止(我有)。
我当时的想法是(Python 中的代码):
def buildTree(root):
for node in root.children:
if <end condition here>:
continue
else:
nodes = getNodes(urllib2.urlopen(node.url).read())
node.addChildren(nodes)
buildTree(node)
其中根和节点是用户定义的节点类
【问题讨论】:
-
只是为了确保我对您的理解正确,您基本上是想对整个站点进行爬网并创建源自父链接的所有链接的家谱?你走在正确的轨道上,但听起来你有两件事让你感到困惑——存储信息的数据结构,以及如何编写递归函数。之后你想对数据做什么?可视化它?序列化它?
-
你说得对,我想遍历整个站点并创建树。递归函数我想我明白了,但我不确定数据结构,一棵树是否适合这个。