BeautifulSoup没有正确提取div

问题描述 投票:0回答:1

BeautifulSoup没有正确提取我想要的div。我不确定我做错了什么。这是html:

                <div id='display'>
                      <div class='result'>
                           <div>text0 </p></div>
                           <div>text1</div>
                           <div>text2</div>
                       </div>
                  </div>

这是我的代码:

div = soup.find("div", {"class": "result"})
print(div)

我看到了这个:

<div class="result">
<div>text0 </div></div>

我期待的是:

<div class="result">
<div>text0</div>
<div>text1</div>
<div>text2</div>
</div>

如果我删除</p>标记,这可以按预期工作。换句话说,</p>标签似乎正在抛弃解析器。

编辑:

这在Python 2.7.12,beautifulsoup4版本4.5.1上按预期工作。但是不适用于Python 3.6.4,beautifulsoup4版本4.7.1。不确定罪魁祸首是python版本还是bs4版本(更有可能)。

有人可以帮忙吗?

beautifulsoup html-parsing
1个回答
1
投票

我发现使用select没有问题

from bs4 import BeautifulSoup as bs
html = '''
<div id='display'>
                      <div class='result'>
                           <div>text0 </p></div>
                           <div>text1</div>
                           <div>text2</div>
                       </div>
                  </div>
                  '''
soup = bs(html)
soup.select('.result')
© www.soinside.com 2019 - 2024. All rights reserved.