我无法将解决方案应用于我在此处找到的类似问题。 在可视代码中使用它来使用python和lxml
刮取网页[...]
tree = html.fromstring(browser.page_source)
data = tree.xpath('//tr[@title="something"]/td[2]/text()')
如果我打印(数据),我会得到这个列表。数据是列表吗?
['\n 1.27\n ', '\n 1.81\n ', '\n 4.90\n ', '\n
2.07\n ', '\n 2.12\n ']
我的目标是只从每个字符串中提取数字。我已阅读有关正则表达式函数,不确定它是否是解决方案
replace($MyString, '[^0-9]', '')
答案 0 :(得分:0)
一种简单的方法是使用strip()
。您可以通过执行以下操作来清理列表:
clean_data = [d.strip() for d in data]
会给你:
['1.27', '1.81', '4.90', '2.07', '2.12']
如果您希望这些是实际的int
,只需使用int(d.strip())
代替
答案 1 :(得分:0)
让我们假设您的输出存储在变量x
中:
>>> print("\n".join([y.strip() for y in x]))
1.27
1.81
4.90
2.07
2.12
这会有帮助吗?或者你需要一个列表:
>>> print([y.strip() for y in x])
['1.27', '1.81', '4.90', '2.07', '2.12']
<强> [UPDATE] 强>
至于
数据是否为列表?