如何生成大型网站的图形站点地图

2024-05-17 06:35:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为我的网站生成一个图形站点地图。据我所知,有两个阶段:

  1. 抓取网站并分析链接关系以提取树结构
  2. 生成树的视觉效果

是否有人在实现这一点上有建议或经验,或者知道我可以构建的现有工作(最好是在Python中)?

我遇到了一些用于渲染树的nice CSS,但它只适用于3个级别。

谢谢


Tags: 图形关系站点网站链接地图经验级别
3条回答

Here is a python web crawler,这应该是一个很好的起点。你的总体策略是:

  • 您需要注意的是,出站链接永远不会被跟踪,包括同一域上的链接,但高于您的起点。
  • 当您建立蜘蛛网时,站点收集映射到每个页面中包含的所有内部url列表的页面url散列。
  • 通过这个列表,为每个唯一的url分配一个令牌。
  • 使用{token=>;[tokens]}的哈希来生成一个graphviz文件,该文件将为您布局一个图
  • 将graphviz输出转换为imagemap,其中每个节点链接到其相应的网页

你需要这么做的原因是,正如leonm所指出的,网站是图,而不是树,而布局图是一个比简单的javascript和css更困难的问题。格拉夫维兹擅长做什么。

请看http://aaron.oirt.rutgers.edu/myapp/docs/W1100_2200.TreeView 关于如何格式化树视图。您还可以修改示例应用程序 http://aaron.oirt.rutgers.edu/myapp/DirectoryTree/index刮你的 页面(如果它们被组织为HTML文件的目录)。

创建站点地图的唯一自动方法是了解站点的结构并编写一个基于该知识的程序。仅仅对链接进行爬网通常是行不通的,因为链接可以在任何页面之间,所以可以得到一个图(即节点之间的连接)。在一般情况下,无法将图转换为树。

因此,您必须自己确定树的结构,然后爬行相关页面以获取页面的标题。

至于“但它只适用于三个层次”:三个层次就足够了。如果你试图创建更多的级别,你的站点地图将变得不可用(太大,太宽)。没有人会想下载一个1MB的网站地图,然后滚动10万页的链接。如果你的网站变得这么大,那么你必须实现某种搜索。

相关问题 更多 >