gpt4 book ai didi

python - 如何使用 BeautifulSoup4 删除 XML 声明

转载 作者:太空宇宙 更新时间:2023-11-04 03:25:28 25 4
gpt4 key购买 nike

我有一个结构如下的 XHTML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
</body>
<html>

我正在使用 BeautifulSoup,我想从文档中删除 XML 声明,所以我得到的是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
...
</head>
<body>
...
</body>
<html>

我找不到获取 XML 声明以将其删除的方法。据我所知,它似乎不是 Doctype、Declaration、Tag 或 NavigableString。有没有办法找到它来提取它?

作为一个工作示例,我可以使用这样的代码删除 Doctype(假设文档文本是变量“html”):

soup = BeautifulSoup(html)
[item.extract() for item in soup.contents if isinstance(item, Doctype)]

最佳答案

您可以使用以下方法:

import bs4

soup = bs4.BeautifulSoup(html, 'html.parser')

for e in soup:
if isinstance(e, bs4.element.ProcessingInstruction):
e.extract()
break

print(soup)

对于您的示例,这将为您提供更新后的 HTML:

<!DOCTYPE html>

<html lang="en">
<head>
...
</head>
<body>
...
</body>
<html></html></html>

关于python - 如何使用 BeautifulSoup4 删除 XML 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33207503/

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