gpt4 book ai didi

python - 使用 BeautifulSoup 输出
而不是

转载 作者:行者123 更新时间:2023-12-01 04:56:26 25 4
gpt4 key购买 nike

我使用 BeautifulSoup 4(当前为 4.3.2)修改了一些 HTML。将修改后的soup转换为字符串时,所有br元素写为 <br/> :

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<p>Paragraph containing<br>line break</p>')
>>> soup.p
<p>Paragraph containing<br/>line break</p>
>>> str(soup.p)
'<p>Paragraph containing<br/>line break</p>'

这对于 HTML 5 来说没问题,但对于 HTML 4 以及我的用例来说不一定;我想像以前一样产生输出。

formatter prettify 的参数和encode方法似乎只影响字符串内容。

是否可以告诉 BeautifulSoup 生成自关闭标签?或者我需要自己编写一个函数来遍历汤并创建这样的字符串吗?

最佳答案

据我了解,BeautifulSoup具有打开然后关闭的标签或自关闭标签。不存在非闭合标签,如你所愿<br>是。

很久以前,someone tried to apply a patch制作prettify()输出br正确标记 HTML 4。

最简单的解决方案是手动删除关闭部分:

>>> data = '<p>Paragraph containing<br>line break</p>'
>>> soup = BeautifulSoup(data, 'html.parser')
>>> str(soup).replace('</br>', '')
'<p>Paragraph containing<br>line break</p>'

这确实不是一个美观且可靠的解决方案。

更好的处理方法是创建您自己的树构建器类并控制方式 br标签构建于 handle_starttag()handle_endtag()方法。

关于python - 使用 BeautifulSoup 输出 <br> 而不是 <br/>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27245574/

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