美丽的汤只是得到标签内的价值

时间:2014-02-25 02:15:39

标签: python beautifulsoup

以下命令:

volume = soup.findAll("span", {"id": "volume"})[0]

给出:

<span class="gr_text1" id="volume">16,103.3</span>

当我发出印刷品(卷)时。

我如何获得该号码?

5 个答案:

答案 0 :(得分:18)

从元素中提取字符串:

volume = soup.findAll("span", {"id": "volume"})[0].string

答案 1 :(得分:8)

使用css selector

>>> soup.select('span#volume')[0].text
u'16,103.3'

答案 2 :(得分:1)

答案 3 :(得分:0)

仅需添加,当文本中有.string时,我还发现<br>的效果不佳。

EG:

 <div class = "Lines">
    <span> First Line <br> Second Line <br> Third Line </span>
  </div>

如果我们进行soup.find("div",attrs={"class":"Lines}).span.string,我们将得到None

但是soup.find("div",attrs={"class":"Lines}).span.text我们得到

First Line
Second Line
Third Line

我认为.string提供了一个NavigatableString对象,而.text提供了一个unicode对象。

答案 4 :(得分:0)

有一个用于获取标签值的函数:tag.contents [0]

尝试一下:

volumes = soup('span')
for volume in volumes:
     print(volume.contents[0])