Selenium innerHTML列表,打印具体值

Selenium innerHTML list, print specific value

首先,我是 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 中的变量中找到“值”?请注意“值”后面有一个冒号!

非常感谢您!

我建议使用正则表达式来查找值。我假设您只需要 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