我正在尝试使用 python 的 beautifulsoup4 包提取地址。文本所在的 HTML block 如下所示:
<address>
183 Main St<br>East Copper<br>Massachusetts<br>U S A<br>
MA 01516-113
</address>
我可以使用 find 和 text.strip() 方法获取地址,并将\n 和\r 替换为空,但我会回来:
'183 Main StEast CopperMassachusettsU S A MA 01516-113'
这对于我的目的来说可能没问题,但好奇心让我想了解如何清理它。
我做了大量的修改和研究,以找出如何让它返回格式良好的地址。我的意思是,这一切都在一行上(就像目前的情况一样),没有额外的空格,并且空格应该位于“Copper”和“Massachusetts”之类的内容之间。
我是否错误地认为正则表达式/代码可以提供帮助?我应该迭代 <br>
标签并单独抓取每一行,然后将字符串与 +
组合起来和空格?
非常感谢任何帮助。
最佳答案
在这种情况下,理想的方法如下所示:
from bs4 import BeautifulSoup
content="""
<address>
183 Main St<br>East Copper<br>Massachusetts<br>U S A<br>
MA 01516-113
</address>
"""
soup = BeautifulSoup(content,"lxml")
item = soup.find("address").get_text(" ",strip=True)
print(item)
输出:
183 Main St East Copper Massachusetts U S A MA 01516-113
关于html - 当 HTML 文本跨多行时,如何在 beautifulsoup4 中返回格式良好的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913975/