我在抓取在<div>
标签内嵌入<p>
标签的网页时遇到了困难。当我找到一个div时,输出以下一个</p>
结尾,而不是继续到</div>
。并且输出似乎已将</p>
从源代码转换为。我尝试使用其他包含性的div
标签,但我的输出始终在所需文本之前结束。
HTML源代码
<p><div class="asdf">Text</p>
<p>More Text</p></div>
Python代码
print(soup.find(class_="asdf"))
输出
output = <div class="asdf">Text</div>
所需的输出
<div class="asdf">Text</p><p>More Text</p></div>
答案 0 :(得分:0)
您可能正在使用默认解析器(Python内置的html.parser
),它对于格式错误的HTML代码不是很好:
>>> BeautifulSoup("<div>Foo</p>Bar</div>", "html.parser").find("div")
<div>Foo</div>
尝试安装lxml
或html5lib
并改用它:
pip install html5lib
然后:
>>> BeautifulSoup("<div>Foo</p>Bar</div>", "html5lib").find("div")
<div>Foo<p></p>Bar</div>
在the documentation中了解有关不同解析器的更多信息