0

我需要一些帮助,从美丽的汤创建的字符串中提取一个整数。这是我的以下代码。

# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup

#San Pedro 
url = "http://www.ndbc.noaa.gov/mobile/station.php?station=46222"
r = requests.get(url)

soup = BeautifulSoup(r.content, "html.parser")

g_data = soup.find_all("body")

for item in g_data:
    #Wheater Conditions
       print item.contents[6]

    #Wave Summary 
       print item.contents[9]

我得到以下输出。

太平洋标准时间 2015 年 12 月 1 日晚上 9:19
海洋: 3.9 英尺 (1.2 m)
高峰期: 15 秒
水温: 65 °F (18 °C)

太平洋标准时间 2015 年 12 月 1 日晚上 9:19
膨胀: 3.0 英尺 (0.9 m)
周期: 15.4 秒
方向: W
风浪: 2.3 英尺 (0.7 m)
周期: 9.9 秒
方向: W

HTML 版本

 <p>9:19 pm PST 01-Dec-2015<br>
<b>Seas:</b> 3.9 ft (1.2 m)<br>
<b>Peak Period:</b> 15 sec<br>
<b>Water Temp:</b> 65 °F (18 °C)<br>
</br></br></br></br></p>
<p>
9:19 pm PST 01-Dec-2015<br>
<b>Swell:</b> 3.0 ft (0.9 m)<br>
<b>Period:</b> 15.4 sec<br>
<b>Direction:</b> W<br>
<b>Wind Wave:</b> 2.3 ft (0.7 m)<br>
<b>Period:</b> 9.9 sec<br>
<b>Direction:</b> W<br>
</br></br></br></br></br></br></br></p>

我需要获取每个类别的单个值 IE 使值如 swell = 3.0

谢谢

4

2 回答 2

0

这不是最好的解决方案,但应该这样做:

def extractInt(string) :
    stringToReturn = ""
    for x in string :
        if x.isdigit() or x==" " :
            stringToReturn = stringToReturn + x
    return stringToReturn

只需在您想要的字符串上调用此函数。

于 2015-12-02T06:46:26.460 回答
0

如果你想有浮点数,你想有浮点数而不是整数。要简单地从字符串中获取数字,请执行以下操作:

if your_string.isdigit():
    your_float = float(your_string)
于 2015-12-02T06:52:23.427 回答