BeautifulSoup - 摆脱段落空格/换行符

时间:2014-07-03 15:42:33

标签: python beautifulsoup

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 个答案:

答案 0 :(得分:4)

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

您可以使用正则表达式轻松折叠所有多行空格:

import re

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

这将删除两个换行符之间的任何空格(换行符,空格,制表符等)。

答案 1 :(得分:-1)

您可以使用python中的strip()函数

item.get_text()。带()