假设我有这样的代码:
<div class="div1">
<div class="div2">
<div class="div3">X: <span class="SpanX">ValueX</span></div>
<p class="p_class">A: <span class="SpanA"> ValueA </span> </p>
<p class="p_class_2">B: <span class="SpanB">ValueB</span></p>
<p class="p_class">C: <span class="SpanA">ValueC</span></p>
</div>
</div>
我想要一本像 {X:ValueX, A:ValueA, B:ValueB, C:ValueC}
我尝试获取 driver.find_elements_by_xpath('//div[@class = "div1")
但下一步是什么?
如何更深入地了解结构?如何检索 p 中嵌套的 span 值?
最佳答案
在 XML 代码中,我看到第一个文本对位于 <div class="div3">
内而所有其他文本对都在 <p>
内元素。因此,这里的共同点是所有这些元素都是 <div class="div2">
的直接子元素。元素。
现在您可以获取直接子元素和内部 span
的文本值元素。
您可以获取“键”值列表、“值”值列表,然后将它们压缩到字典中,如下所示:
keys = []
values = []
elements = driver.find_elements_by_xpath("//div[@class='div2']/*")
for element in elements:
entire_text = element.text
key = entire_text.split(" ")[0]
keys.append(key)
elements = driver.find_elements_by_xpath("//div[@class='div2']/*/span")
for element in elements:
value = element.text
values.append(value)
dictionary = dict(zip(keys, values))
print(dictionary) #{X:ValueX, A:ValueA, B:ValueB, C:ValueC}
关于Python selenium - 从 p 和 span 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69290354/