1

我正在尝试从嵌套的 html 标签中提取信息:

<div id="container">
    <div id="cover_1" class="default"></div>
    <div id="container_2">
        <div class="blue">
        <div id="container_3" class="red">
    </div>

但是,当我尝试通过以下方式检查 container_2 的孩子时:

container_2tag = soup.find("div", id = "container_2")

children = container_2tag.findChildren()

孩子列表是空的,所以我不能更深入地研究这个结构。我已经查看了解释使用 findAll 对树标记进行迭代的答案,但找不到 Beautiful Soup 看不到 html 嵌套的问题。它可能是一个糟糕的解析器吗?(我已经安装了 html5lib)..

4

1 回答 1

0

您没有 ID 为 container_2tag 的标签

container_2tag = soup.find("div", id = "container_2")

并且可以找到孩子

>>> children = container_2tag.findChildren()
>>> children
[<div class="blue">
<div id="container_3" class="red">
</div>
</div>, <div id="container_3" class="red">
</div>]
>>> children[0]
<div class="blue">
<div id="container_3" class="red">
</div>
</div>
>>> children[1]
<div id="container_3" class="red">
</div>
>>> children[2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
于 2013-05-01T13:17:53.913 回答