顺序。
我很难抓取在<p>
标签中嵌入<div>
标签的网页。当我找到一个div时,输出以下一个</p>
结束,而不是继续</div>
.并且输出似乎已将源代码的</p>
转换为.我尝试使用其他包含性div
标签,但我的输出总是在所需的文本之前结束。
网页源代码
<p><div class="asdf">Text</p>
<p>More Text</p></div>
蟒蛇代码
print(soup.find(class_="asdf"))
输出
output = <div class="asdf">Text</div>
期望的输出
<div class="asdf">Text</p><p>More Text</p></div>
您可能正在使用默认的解析器(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>
在文档中阅读有关不同解析器的更多信息