как я понимаю есть два пути:
1. "от первого лица", т.е. будучи админом и имея доступ к БД выстроить древо
2. "от лица шпиёна", т.е. написать паука, который обойдет "со стороны" весь сайт и выстроит древо
Хотелось бы услышать плюсы и минусы каждого из подходов, а так же, описание методов практической рализации, особенно по п.2.