【问题标题】:Extract float from string extracted from html [duplicate]从从html中提取的字符串中提取浮点数[重复]
【发布时间】:2017-06-09 22:08:43
【问题描述】:

我正在尝试从一个简单的 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

【问题讨论】:

    标签: python html


    【解决方案1】:

    一种选择是应用正则表达式:

    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()方法返回一个列表,不要忘记从中获取想要的字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-09
      • 2020-12-17
      • 1970-01-01
      • 2020-08-04
      • 2010-10-30
      • 1970-01-01
      相关资源
      最近更新 更多