简化网站以进行平台迁移 - 现有软件或解析脚本?

时间:2011-07-05 20:53:43

标签: html parsing migration html-parsing

我正在将网站从一个平台迁移到另一个平台。部分要求是维护可能被加入书签的URL,我将使用重写规则。

因为旧系统很乱,我需要特别注意并确保所有链接都能正常工作。因为有很多页面,手动执行此操作是不现实的 - 我需要自动化该过程。顶部有一个主菜单,右下方有一个子菜单,还有一个侧面菜单 - 但这可能对任何随机页面都不真实。

第一步,我要做的是进行某种解析并生成网站的简化版本。在这个简化版本中,我只担心链接。

所以我想做的是:解析页面并丢弃大部分html,除了任何链接(内部或外部)。如果一组链接都存在于特定的html标记内(例如,作为菜单的<ul>或充当内容区域的<div>,我想保留html的嵌套标签。

基本上我最终想要的是:

index.html
<html>
  <body>
   <tag>
      <a href='page2.html'>Menu Item 1</a>
      <a href='page3.html'>Menu Item 2</a>
      <a href='page4.html'>Menu Item 3</a>
   </tag>
   <tag>
      <a href='page5.html'>SubMenu Item 4</a>
      <a href='page6.html'>SubMenu Item 5</a>
      <a href='page7.html'>SubMenu Item 6</a>
   </tag>
   <tag>
      <a href='page8.html'>Side Menu Item 1</a>
      <a href='page9.html'>Side Menu Item 2</a>
      <a href='page10.html'>Side Menu Item 3</a>
   </tag>   
   <tag>
      <a href='site.com'>Content External link</a>
      <a href='about_us.html'>Content Internal Link</a>
   </tag>
  </body>
</html>

<tag>可以是任何块样式的html标记 - 实际上不必是链接共享的第一个标记。

脚本/程序不一定要足够聪明才能知道“这是一个菜单”或“这是一个导航面板”;

,只要它可以将第一个html标记中的链接分组,它们就足够了。

那里有一个脚本或软件吗?或者我会写自己的吗?

如果我自己编写,我该如何进行html解析?我听说正则表达式不是答案,因为它们无法跟踪状态,因此无法了解嵌套标记结构。

0 个答案:

没有答案