无法删除结果之间的巨大空间
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
问题是 key
、details
和 ctype
在字符串中间包含多行和空格。您需要在换行符上拆分它们并剥离每个项目。类似于:
for piece in key.split('\n'):
print(piece.strip())
并重复 details
和 ctype
。
当浏览器向您显示 html 时,它不会注意字符串开头和结尾的外部白色 space。 Python (或任何其他编程语言)从字面上接受字符串中的白色 space 。巧合的是,就在昨天,我也被类似的情况难住了。
我在 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
问题是 key
、details
和 ctype
在字符串中间包含多行和空格。您需要在换行符上拆分它们并剥离每个项目。类似于:
for piece in key.split('\n'):
print(piece.strip())
并重复 details
和 ctype
。
当浏览器向您显示 html 时,它不会注意字符串开头和结尾的外部白色 space。 Python (或任何其他编程语言)从字面上接受字符串中的白色 space 。巧合的是,就在昨天,我也被类似的情况难住了。