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版本(更有可能)。
有人可以帮忙吗?
我发现使用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')