gpt4 book ai didi

algorithm - 将站点的链接存储在树中

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:51 24 4
gpt4 key购买 nike

我正在尝试将从网站上抓取的链接存储在非二叉树中。链接是分层布局的(很明显)。问题是如何生成树?我的意思是,我要如何浏览链接提供的页面才能知道谁是 child 。

现在我可以获得第一级和第二级链接,但不知道如何从这里开始,除了我必须递归地构建它并且有一种方法在我到达叶子时停止(这我有)。

我的想法是(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)

其中 root 和 nodes 是用户定义的 Node

最佳答案

显然,站点中的链接不是树,而是。您应该有一个由 URL 标识的 Page 对象和一个从一个页面指向另一个页面的 Link 对象(并且页面 A 可以指向页面 B,而页面 B 指向页面 A,使其成为一个图形,而不是一棵树)。

扫描算法伪代码:

process_page(current_page):
for each link on the current_page:
if target_page is not already in your graph:
create a Page object to represent target_page
add it to to_be_scanned set
add a link from current_page to target_page

scan_website(start_page)
create Page object for start_page
to_be_scanned = set(start_page)
while to_be_scanned is not empty:
current_page = to_be_scanned.pop()
process_page(current_page)

关于algorithm - 将站点的链接存储在树中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658652/

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