繁体   English   中英

从字节数据中提取一些数字

[英]Extracting some numbers from a byte data

我是网络抓取的新手。 使用这些行抓取一些网站后:

x1 = urllib.request.urlopen('somewebsite1').read()
x2 = urllib.request.urlopen('somewebsite2').read()
x3 = urllib.request.urlopen('somewebsite3').read()

我有以下数据:

In [14]:print(x1)
b'<li><span class="Price down2">0.071&nbsp;</span></li>'

In [15]:print(x2)
b'<li><span class="Price up2">0.059&nbsp;</span></li>'

In [16]:print(x3)
b'<li><span class="Price down2">0.079&nbsp;</span></li>'

x1、x2 和 x3 的数据类型是字节。 我想从 x1、x2 和 x3 中提取 0.071、0.059、0.079 作为浮点数。 这样做的pythonic方法是什么?

先感谢您

编辑:为了更好的演示

您可以使用正则表达式:

import re
x1_extracted = re.findall('(?<=>)\d+\.*\d*', x1.decode('utf-8'))
x1_extracted = float(x1_extracted[0])

首先,您需要解码您的字节序列(将其从字节转换为字符串。我假设编码是 utf-8)。 然后您可以使用re模块来查找值。 分步说明,该表达式的意思是: 查找一个或多个数字 ( \\d+ ),可选后跟一个点 ( \\.* ),也可选后跟更多数字 ( \\d* )。 所有这些都应该以> ( (?<=>) ) 开头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM