1

我是一个初学者程序员,所以这可能是一个微不足道的问题:我有一个带有深度嵌套无序列表的 .html 文件。例如,如何将前 4 个嵌套级别复制到 Python 中的新空 .html 文件中?我需要 BeautifulSoup 吗?为了更好的说明,这里是 Javascript 中显示效果的代码:

function nestless(root, selector, level) {
    var use = root;
    for (var i = 0; i <= level; i++) {
        use += ' ' + selector;
    }
    $(use).remove();
}

在这里我会使用:

nestless('#root', 'ul', 4);

看来我原来的问题写得不好,难以解析,对此我深表歉意。.html 文件并不是真正的网站,而是在 html 编辑器中手动编写的文本文档并保存在 .html 中。它们包含无法用 LaTeX 编辑器编写的任何内容。

例如,如果我想将此列表减少到前 2 个级别:

  • 一个
    • C
    • D
      • F
  • G

  • 一个
    • C
    • D
  • G

根据我自己的研究,在 BeautifulSoup+soupselect、PyQuery 或 lxml 中有通过 CSS 选择器的 .html 解析器,但我不确定最简单的方法是什么或从哪里开始阅读。

4

2 回答 2

1

我会查看 Mechanize http://wwwsearch.sourceforge.net/mechanize/来进行 html 解析以获取实际列表本身。尽量不要为此使用正则表达式,因为它会变得非常混乱,只会让事情变得更加困难。

于 2012-07-20T15:54:11.320 回答
0

你不需要beautifulsoup,但没有它会很痛苦。

用它来:

  • 找到您的第一级列表标签;
  • 在第一层迭代;
  • 对于每个元素,迭代到第二级;
  • 对第三和第四级做同样的事情。
  • 在第四级,迭代,删除任何子节点。

将您拥有的对象保留在 memeroy 中,并在生成新的 html 文件时将其作为子项插入到下一个 html 对象中。

于 2012-07-21T20:42:15.347 回答