使用Python / Pexpect来抓取网络

时间:2010-07-28 20:51:42

标签: python dictionary pexpect

这更像是一个逻辑思维问题,而不是编码。 我已经有一些工作代码块 - 一个telnet到一个设备,一个解析命令的结果,一个填充字典等等

现在假设我想分析一个包含未知节点的网络,a,b,c等(但我只知道1)

我给我的代码块节点a。结果是包括b,c的表格。我把它保存在字典中

然后,我想将第一个条目(b)用作目标,看看它能看到什么。可能是d,e等,并将这些(如果有的话)添加到字典

然后在这个新填充的字典中的下一个节点上执行相同的操作。最终输出将是所有节点仅被访问过一次,所有看到的设备都记录在这个(或另一个)字典中。

然而,我无法弄清楚如何继续重读dict,我无法弄清楚如何避免多次查看设备。

据我所知,这比我解释的更清楚,如果它令人困惑而道歉

1 个答案:

答案 0 :(得分:2)

您正在查看图算法,特别是DFSBFS。您是否具体询问实施细节,或者更一般地询问算法?

递归将是一种非常巧妙的方式。

seen = {}
def DFS( node ):
    for neighbour in node.neighbours():
        if neighbour not in seen:
            seen[ neighbour ] = some_info_about_neighbour
            DFS( neighbour )