如何在beautifulsoup中只获得完整的li标签?

时间:2018-02-25 05:07:51

标签: python beautifulsoup

我有以下

<ul class="fullname">
    <li><a href="">some name</a></li>
    <li>
        <ul>
            <li>name1</li>
            <li>Name2</li>
        </ul>
    </li>
        <ul>
            <li>name3</li>
            <li>Name4</li>
        </ul>
    </li>         
</ul>

我想在孩子中只有三个元素,在第一个索引中就像 <li><a href="">some name</a></li>和第二<ul><li>name1</li><li>Name2</li></ul>

我试过以下

navContent = content.find("li",{"class":"fullname"})
children = navContent.find_all("li")

但是在第二个索引中,<li>name1</li>而不是整个li。我怎么能得到它?

1 个答案:

答案 0 :(得分:1)

使用recursive=False

来自文档:

  

如果你致电mytag.find_all(),美丽的汤将检查mytag的所有后代:它的孩子,孩子的孩子,等等。如果你只想要美丽的汤来考虑直接的孩子,你可以传递recursive=False

navContent = content.find("ul",{"class":"fullname"})
children = navContent.find_all("li", recursive=False)