用beautifulsoup解析<br/>标签

时间:2017-04-26 21:37:38

标签: html web-scraping beautifulsoup tags web-crawler

我正在抓取一个网站,而且标签的结构是:

<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标签获取数据时添加额外的空格?

由于

2 个答案:

答案 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)

您可以在此处使用splitjoin

>>> ' '.join(templist.get_text().split())
'"C Space" "802 white avenue" "xyz 123" "Lima"'