2017-01-24 20 views
0

Ich versuche, Daten aus einer einfachen HTML-Seite zu extrahieren, die Temperatur von Arduino Lesen nimmt ich es geschafft haben, bis zu dem Punkt zu gelangen, wo ich die Schnur mit der Temperaturmessung erhalten, die ist:Extract Schwimmer aus String aus html extrahiert

'Temperatur in Celsius: \ r \ n 23.20 \ r \ n * C'

aber ich kann nicht herausfinden, wie die Temperatur Schwimmer aus dem String zu extrahieren, irgendwelche Vorschläge? Bitte nicht vergessen, dass die sich ergebenden Temperaturänderungen als Arduino Live-Lesung nehmen ...

from lxml import html 
import requests 
page = requests.get('http://192.168.1.103:180') 
tree = html.fromstring(page.content) 
extract = tree.xpath('/html/body/h3[1]/text()') 
print extract 

Antwort

2

Eine Möglichkeit einen regulären Ausdruck anzuwenden wäre:

In [1]: import re 

In [2]: s = 'Temperature in Celsius: \r\n 23.20\r\n*C' 

In [3]: re.search(r"\d+\.\d+", s).group(0) 
Out[3]: '23.20' 

wo \d+ für ein oder mehrere aufeinanderfolgende Ziffern \. ist ein wörtlicher Punkt.

Oder Sie können durch : und „Band“ der nicht benötigte Teil aufgeteilt:

In [4]: s.split(":")[-1].strip(" \r\n*C") 
Out[4]: '23.20' 

Beachten Sie, dass xpath() Methode in lxml gibt eine Liste, vergessen Sie nicht, von ihm die gewünschte Zeichenfolge zu erhalten.