gpt4 book ai didi

python - BeautifulSoup lxml 解析器关闭不应出现的标签

转载 作者:行者123 更新时间:2023-11-30 22:52:37 25 4
gpt4 key购买 nike

我正在使用 BeautifulSoup 的 lxml 解析器来解析一些 html。但是,它并没有按照编写的方式进行解析。例如下面的代码:

import bs4

my_html = '''
<html>
<body>
<B>
<P>
Hello, I am some bolded text
</P>
</B>
</body>
</html>
'''

soup = bs4.BeautifulSoup(my_html, 'lxml')
print soup.prettify()

将打印:

<html>
<body>
<b>
</b>
<p>
Hello, I am some bolded text
</p>
</body>
</html>

您可以看到 <B> 以某种方式标签来自my_html<p> 之前关闭美化版本中的标签,即使它应该在</p>之后关闭。关于可能发生的事情有什么想法吗?我完全困惑了。

最佳答案

这是因为<b>内不允许有段落。标签。

只有接受流内容的标签才允许作为 <p> 的父标签标签。请参阅here获取列表。

但是,您可以执行相反的操作; <p>允许作为 <b> 的父级标签。对于您的情况,您可以将原始 HTML 更改为如下所示:

my_html = '''
<html>
<body>
<p>
<b>
Hello, I am some bolded text
</b>
</p>
</body>
</html>
'''

关于python - BeautifulSoup lxml 解析器关闭不应出现的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38489674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com