【问题标题】:How to generate graphical sitemap of large website [closed]如何生成大型网站的图形站点地图[关闭]
【发布时间】:2009-11-04 09:07:59
【问题描述】:

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

  1. 爬取网站,分析链接关系提取树状结构
  2. 生成视觉上令人愉悦的树渲染

有没有人有实现这一目标的建议或经验,或者知道我可以在现有工作的基础上进行构建(最好是在 Python 中)?

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

谢谢

【问题讨论】:

  • 网站通常是图表而不是树,这可能会使您的事情变得复杂。
  • 嗯,这很好——我的网站有一个侧边导航栏。也许可以通过使用最强的链接从图中形成一棵树。
  • SlickMap CSS 链接的+1 astuteo.com/slickmap 提供了一个漂亮的树的视觉显示。

标签: python web sitemap web-crawler


【解决方案1】:

创建站点地图的唯一自动方法是了解您网站的结构并编写基于该知识的程序。仅仅抓取链接通常不会起作用,因为链接可以在任何页面之间,因此您可以获得图表(即节点之间的连接)。在一般情况下,无法将图转换为树。

所以你必须自己识别你的树的结构,然后爬取相关的页面来获取页面的标题。

至于“但它只适用于3个级别”:三个级别绰绰有余。如果您尝试创建更多关卡,您的站点地图将变得无法使用(太大、太宽)。没有人会想要下载 1MB 的站点地图,然后滚动浏览 100'000 页的链接。如果您的网站变得那么大,那么您必须实施某种搜索。

【讨论】:

    【解决方案2】:

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

    • 您需要注意不要跟踪出站链接,包括同一域上但高于起点的链接。
    • 当您进行爬虫时,该站点会收集映射到每个页面中包含的所有内部 URL 列表的页面 URL 哈希。
    • 遍历此列表,为每个唯一的 url 分配一个令牌。
    • 使用您的 {token => [tokens]} 哈希生成一个 graphviz 文件,该文件将为您布置图表
    • 将 graphviz 输出转换为图像地图,其中每个节点都链接到其对应的网页

    正如 leonm 所指出的,您需要做这一切的原因是,网站是图表,而不是树,并且布置图表是一个比使用简单的 javascript 和 css 更难的问题。 Graphviz 擅长它的工作。

    【讨论】:

    • graphviz 看起来是个好主意,虽然图表并不太吸引人
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-01-31
      • 2017-11-29
      • 1970-01-01
      • 2020-05-22
      • 2011-03-29
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多