无法删除结果之间的巨大空间

Unable to remove huge spaces between results

我在 python 中编写了一个脚本,用于从某些 html 元素中抓取一些文本。我写的脚本可以解析它。然而,问题是数据被解析时它们之间有巨大的空间。我尝试使用 .strip() 方法,但它对结果没有任何影响。我该如何解决?

html个元素:

html="""
<div class="organisation-details">

    <div class="personnel shaded">
                        <h3>KEY PERSONNEL</h3>
                        <p>
                                Director: Andrew Bickerton<br>
                                Director: Andrew Connor<br>
                                Office Manager: Tom Marchant<br>
                        </p>
                    </div>

    <div class="company-type shaded">
                        <h3>COMPANY TYPE</h3>
                        <p>
                                                        Importer
                        </p>
                    </div>

    <div class="company-details shaded">
                        <h3>COMPANY DETAILS</h3>
                        <p>
                                Year Established: 1984 <br>
                                                        VAT No: GB 413 3611 93<br>
                                                        No of Employees: 1-20<br>
                        </p>
                    </div>


</div>
"""

这个脚本:

from lxml.html import fromstring

tree = fromstring(html)
for title in tree.cssselect(".organisation-details"):
    key = title.cssselect("h3:contains('KEY PERSONNEL')+p")[0].text_content().strip()
    details = title.cssselect("h3:contains('COMPANY DETAILS')+p")[0].text_content().strip()
    ctype = title.cssselect("h3:contains('COMPANY TYPE')+p")[0].text_content().strip()
    print(key,details,ctype)

我的输出:

Director: Andrew Bickerton
                                Director: Andrew Connor
                                Office Manager: Tom Marchant Year Established: 1984 
                                                        VAT No: GB 413 3611 93
                                                        No of Employees: 1-20 Importer

我想要的结果(或更接近的结果):

Director: Andrew Bickerton
Director: Andrew Connor
Office Manager: Tom Marchant 
Year Established: 1984 
VAT No: GB 413 3611 93
No of Employees: 1-20
Importer

问题是 keydetailsctype 在字符串中间包含多行和空格。您需要在换行符上拆分它们并剥离每个项目。类似于:

for piece in key.split('\n'):
    print(piece.strip())

并重复 detailsctype

当浏览器向您显示 html 时,它不会注意字符串开头和结尾的外部白色 space。 Python (或任何其他编程语言)从字面上接受字符串中的白色 space 。巧合的是,就在昨天,我也被类似的情况难住了。