我正在尝试从一个简单的html页面中提取数据,该页面从arduino读取温度,我已经设法达到了温度读数的字符串:
'摄氏温度:\ r \ n 23.20 \ r \ n * C'
但我无法弄清楚如何从字符串中提取温度浮点数,有什么建议吗?请记住,随着arduino的实时阅读,产生的温度会发生变化......
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
答案 0 :(得分:2)
一种选择是应用正则表达式:
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'
其中\d+
匹配一个或多个连续数字,\.
是一个文字点。
或者,您可以按:
拆分并“删除”不需要的部分:
In [4]: s.split(":")[-1].strip(" \r\n*C")
Out[4]: '23.20'
请注意,lxml中的xpath()
方法返回列表,不要忘记从中获取所需的字符串。