用beauthoulsoup解析嵌套HTML列表

2024-04-27 14:32:40 发布

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

我需要解析一个嵌套的HTML列表并将其转换为父子dict。给定这个列表:

<ul>
  <li>Operating System
    <ul>
      <li>Linux
        <ul>
          <li>Debian</li>
          <li>Fedora</li>
          <li>Ubuntu</li>
        </ul>
      </li>
      <li>Windows</li>
      <li>OS X</li>
    </ul>
  </li>
  <li>Programming Languages
    <ul>
      <li>Python</li>
      <li>C#</li>
      <li>Ruby</li>
    </ul>
  </li>
</ul>

我想把它转换成这样的句子:

^{pr2}$

我最初的尝试是使用find_all('li', recursive=False)。它返回顶级项(操作系统和编程语言),但也返回子项。在

我怎么能用美丽素来做呢?在


Tags: 列表osubuntulinuxwindowshtmloperatingli
1条回答
网友
1楼 · 发布于 2024-04-27 14:32:40

有一种方法:

def dictify(ul):
    result = {}
    for li in ul.find_all("li", recursive=False):
        key = next(li.stripped_strings)
        ul = li.find("ul")
        if ul:
            result[key] = dictify(ul)
        else:
            result[key] = None
    return result

示例用法:

^{pr2}$

相关问题 更多 >