这是示例程序:
from bs4 import BeautifulSoup
import HTMLParser
soup = BeautifulSoup('', 'html.parser')
html = soup.new_tag('html')
head = soup.new_tag('head')
body = soup.new_tag('body')
html.insert(0, head)
html.insert(1, body)
soup.insert(0, html)
blockquote = soup.new_tag('blockquote')
sourceStr = "This is <i>My Website Title</i>, just for example."
blockquote.insert(0, BeautifulSoup(HTMLParser.HTMLParser().unescape(sourceStr), 'html.parser'))
soup.body.insert(1, blockquote)
print soup.prettify()
它生成以下输出:
<html>
<head>
</head>
<body>
<blockquote>
This is
<i>
My Website Title
</i>
, just for example.
</blockquote>
</body>
</html>
实际上在浏览器中显示为:
例如,这是我的网站标题。
“我的网站标题”和以下逗号之间添加了多余的空格。如何避免BeautifulSoup添加多余的空格?
如果不使用任何字符串操作,是否可以使用BeautifulSoup方法处理此问题?
答案 0 :(得分:1)
如果您要创建自己不想打印的tag
,则可以在创建preserve_whitespace_tags
之后对其进行手动修补,如下所示:
blockquote = soup.new_tag('blockquote')
blockquote.preserve_whitespace_tags.add('blockquote')
我认为这可能是您想要的最接近的东西,而无需编写极其复杂的解析器。