2015-12-02 6 views
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] 

Мне дается следующий выход.

9:19 PM PST 01-дек-2015
морей: 3,9 фута (1,2 м)
Пик Период: 15 сек
Температура воды: 65 ° F (18 ° С)

9:19 PM PST 01-дек-2015
Свелла: 3,0 фута (0,9 м)
Период: 15,4 сек
Направление: Вт
Wind Wave: 2,3 фута (0,7 м)
Период: 9,9 сек
Направление: Вт

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> 

Мне нужно получить индивидуальное значение каждой категории I.E. сделать значение в качестве такой зыби = 3,0

Благодаря

ответ

0

Не сюр-это лучшее решение, но что-то вроде этого нужно сделать:

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

Просто вызвать эту функцию на строку, которую вы хотите.

0

Если вы хотите иметь номера с плавающими точками, вы хотите иметь поплавки с целыми числами. Чтобы просто получить номер из строки do:

if your_string.isdigit(): 
    your_float = float(your_string) 
Смежные вопросы