[英]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 </span></li>'
In [15]:print(x2)
b'<li><span class="Price up2">0.059 </span></li>'
In [16]:print(x3)
b'<li><span class="Price down2">0.079 </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.