<p> 并在<div>网页抓取时订购


顺序。

我很难抓取在<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>

尝试安装lxmlhtml5lib并改用它:

pip install html5lib

然后:

>>> BeautifulSoup("<div>Foo</p>Bar</div>", "html5lib").find("div")
<div>Foo<p></p>Bar</div>

在文档中阅读有关不同解析器的更多信息

最新更新