Python 无法删除已删除文本之间的空格
我用python编写了一个脚本,从一些html元素中提取一些文本。脚本现在可以解析它了。然而,问题是结果看起来很奇怪,它们之间有一堆空格。我怎样才能修好它?我们将非常感谢您的帮助 这是文本应从中删除的html元素:Python 无法删除已删除文本之间的空格,python,python-3.x,web-scraping,lxml.html,Python,Python 3.x,Web Scraping,Lxml.html,我用python编写了一个脚本,从一些html元素中提取一些文本。脚本现在可以解析它了。然而,问题是结果看起来很奇怪,它们之间有一堆空格。我怎样才能修好它?我们将非常感谢您的帮助 这是文本应从中删除的html元素: html=""" <div class="postal-address"> <p>11525 23 AVE</p> <p>EDMONTON, AB ,
html="""
<div class="postal-address">
<p>11525 23 AVE</p>
<p>EDMONTON,
AB
,
T6J 4T3
</p>
<p><a rel="nofollow" href="mailto:info@something.com">info@something.com</a></p>
<p><a rel="nofollow" href="http://www.something.org" target="_blank">Visit our Web Site</a></p>
</div>
"""
结果我有:
11525 23 AVE, EDMONTON,\n AB\n ,\n T6J 4T3\n
预期结果:
11525 23 AVE EDMONTON, AB, T6J 4T3
我试图在这行[item.text for item in root.cssselect(“.posal address p”)]
中应用.strip()
和.replace(“\n”,”)
)
顺便说一句,我不希望有任何与regex
相关的解决方案。提前谢谢。当你这样做时。替换(“\n”,”)我认为你必须避开斜杠。这有时会让人困惑,如果不尝试,我无法告诉您需要多少个斜杠才能摆脱它,但请尝试其中一个
.replace("\\n","")
.replace("\\\n","")
.replace("\\\\n","")
使用单引号时会发生什么
”、“
作为分隔符连接字符串src = '11525 23 AVE, EDMONTON,\n AB\n ,\n T6J 4T3\n'
print(', '.join([s.strip() for s in src.split(',')]))
输出
11525 23 AVE, EDMONTON, AB, T6J 4T3
如果您已经有一个字符串列表,这就更容易了:
address = [
'11525 23 AVE',
' EDMONTON',
'\n AB\n ',
'\n T6J 4T3\n'
]
print(', '.join([s.strip() for s in address]))
请尝试以下解决方案,并在出现任何问题时通知我:
address = [" ".join(item.text.split()).replace(" ,", ",") for item in root.cssselect(".postal-address p") if item.text]
输出:
谢谢你的回答。它似乎在工作,但我应该如何在这一行中应用相同的
[item.text for item in root.cssselect(“.posal address p”)]
,这是这里主要关心的问题。@top抱歉,我以为您只需要转换一个字符串,我没有注意到您已经有一个字符串列表,因为在您的“Result I'm having:”没有打印任何括号。如果已经有字符串列表,则不需要执行.split
步骤。我很快会在我的答案中添加更多的代码。非常感谢Andersson先生提供了如此有效的答案。您总是特定于所需的输出。再次感谢。
address = [" ".join(item.text.split()).replace(" ,", ",") for item in root.cssselect(".postal-address p") if item.text]
['11525 23 AVE', 'EDMONTON, AB, T6J 4T3']