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
。
首先,我是 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
。