BeautifulSoup - 去除段落空白/换行

3 投票
2 回答
5759 浏览
提问于 2025-04-18 12:01
similarlist = res.find_all_next("div", class_="result-wrapper")
for item in similarlist:
    print(item)

这段代码返回了:

<div class="result-wrapper">
<div class="row-fluid result-row">
<div class="span6 result-left">
<p>
<a class="tooltipLink warn-cs" data-original-title="Listen" href="..." rel="tooltip"><i class="..."></i></a>
<a class="muted-link" href="/dictionary/german-english/aa-machen">Aa <b>machen</b></a>
</p>
</div>   
<div class="span6 result-right row-fluid">
<span class="span9">
<a class="muted-link" href="/dictionary/english-german/do-a-poo">to do a poo</a>, <a class="muted-link" href="/dictionary/english-german/pooh">to pooh</a>
</span>
</div>
</div>
</div>

当我选择打印 item.get_text() 的时候,我得到了

abgeneigt machen
to disincline




abhängig machen
2137

to predicate




Absenker machen
to layer

所以基本上在列表项之间出现了很多我不需要的空行。这是因为 <p> 标签吗?我该怎么去掉它们呢?

2 个回答

-3

你可以在Python中使用strip()这个函数。

比如,item.get_text().strip()

7

是的,在标签之间,HTML 也包含空白字符(包括换行符)。

你可以用一个正则表达式轻松地把所有多行的空白字符压缩成一行:

import re

re.sub(r'\n\s*\n', r'\n\n', item.get_text().strip(), flags=re.M)

这个方法可以去掉两个换行符之间的任何空白字符(换行、空格、制表符等等)。

撰写回答