如何解决Selenium innerHTML 列表,打印特定值
首先,我刚开始使用 Python,尤其是 Selenium。所以我使用 webdriver 连接到一个页面,并且已经获取了我需要的 InnerHTML。这是我的问题,InnerHTML 是一个“列表”,我只想输出一个值。它看起来像这样:
<html>
<body>
<pre style="example" xpath="1">
"amount": 12{
"value" : 3
},</pre>
</body>
</html>
^这只是为了说明,因为实际的东西要长得多。 InnerHTML 看起来像这样:
"amount": 12{
"value" : 3
},
^这就是我现在的位置。我无法指定一行,因为页面不是静态的。如何让 python 从 InnerHTML 中的变量中找到“值”?请注意“value”后面有一个冒号!
在此先非常感谢您!
解决方法
我建议使用正则表达式来查找值。我假设您只需要 number 部分,因此代码如下:
innerHTML = '''
"amount": 12{
"value" : 3
},"value":4
'value': 5
'''
import re
regex = re.compile(r'''("|')value("|')\s*:\s*(?P<number>\d+)''')
startpos = 0
m = None
while 1:
m = regex.search(innerHTML,startpos)
if m is None: break
print(m.group("number"))
startpos = m.start() + 1
# output:
# 3
# 4
# 5
这将打印出所有找到的值数字,作为字符串。例如,您可以在之后将它们转换为整数。
注意:我的代码还说明了 value
被单引号 '
而不是双引号 "
括起来的情况。这是为了您的方便;如果没有,您可以将上面的相应行更改为:
regex = re.compile(r'''"value"\s*:\s*(?P<number>\d+)''')
在这种情况下,输出将不包括值 5
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。