0

我有来自用户的段落输入。但是,总是有前导或尾随<br>、空<p>或空<div>,它们根本没有意义,它们会影响输出的格式。如何在 Python 中很好地正确地剥离它们?

用户输入的示例如下:

<br><div></div>
<div>Hello <a href="world.html">World!</a>.</div>
<br><br>
<div>Image below:<br>
<img src="abc.jpg" /><br><br></div><p></p>

我想要的理想结果是:

<div>Hello <a href="world.html">World!</a>.</div>
<br /><br />
<div>Image below:<br />
<img src="abc.jpg" /></div>

谢谢你。

4

2 回答 2

2

如果这次我对您的理解正确,您可以尝试删除空标签 - 即没有文本的标签:

>>> from BeautifulSoup import BeautifulSoup as bs
>>> tags = bs('<div></div><p></p><div>Test text.</div><p></p>').findAll()
>>> [ tag for tag in tags if tag.text ]
[<div>Test text.</div>]
于 2012-06-17T01:21:30.207 回答
0

试试这个功能:

get_text('', '<br/>')

我有同样的问题,通过标签将文本分成多行

'<br/>' 

这个函数至少可以将这些行合并成一行,这样可以去掉这个标签的影响。希望有效!

于 2013-07-22T03:41:07.647 回答