我正在抓取一个网站,而且标签的结构是:
<div class="content"
<p>
"C Space"
<br>
"802 white avenue"
<br>
"xyz 123"
<br>
"Lima"
</p>
当我使用beautifulsoup使用以下命令获取文本时:
html=urlopen("something")
bsObj = BeautifulSoup(html,"html5lib")
templist = bsObj.find("div",{"class":"content"})
print(templist.get_text())
我得到以下输出: C Space802 white avenuexyz 123Lima
而我希望输出为:C Space 802 white avenue xyz 123 Lima。
如何从后续br标签获取数据时添加额外的空格?
由于
答案 0 :(得分:5)
您可以使用.get_text()
参数:
In [4]: elm = soup.select_one(".content")
In [5]: print(elm.get_text(strip=True, separator=" "))
"C Space" "802 white avenue" "xyz 123" "Lima"
答案 1 :(得分:1)
您可以在此处使用split
和join
:
>>> ' '.join(templist.get_text().split())
'"C Space" "802 white avenue" "xyz 123" "Lima"'