我可以在使用同级语句之前或之后获取值吗?

2024-05-08 14:51:09 发布

您现在位置:Python中文网/ 问答频道 /正文

要在使用同级语句之前或之后获取值吗?你知道吗

HTML代码

<tr><td width="295" align="right" class="bg1"><div class="barBg2"><div class="info" style="width:60%;"></div></div></td><td width="50" align="center" class="bg1">60%</td><td width="110" align="center" class="bg3">半場控球率</td><td width="50" align="center" class="bg1">40%</td><td width="295" align="left" class="bg1"><div class="barBg"><div class="info" style="width:40%;"></div></div></td><iframe id="tmp_downloadhelper_iframe" style="display: none;"></iframe></tr>

HTML显示输出

60%半22580;控球率40%

Python代码

#coding:utf-8
from selenium import webdriver

driver=webdriver.Firefox()
driver.get('url')

texts = driver.find_elements_by_xpath('//*[@id="matchData"]/div[5]//tr//td[preceding-sibling::td="半場控球率" and following-sibling::td="半場控球率"]')

print texts
driver.close()

预期产量

60% 40%

Tags: 代码divstylehtmldriverwidthtrclass
1条回答
网友
1楼 · 发布于 2024-05-08 14:51:09
[preceding-sibling::td="半場控球率" and following-sibling::td="半場控球率"] 

predicate意味着您要选择前面和后面都有的元素,以及“ࡔ場৷球率”文本内容。如果您想选择在前面或后面有个带有文本“半場৷球率”的同级的元素,您需要

[preceding-sibling::td="半場控球率" or following-sibling::td="半場控球率"]

还要注意,在您的例子中texts是WebElements的列表。如果你想得到文本节点,你可以试试

texts = [td.text for td in driver.find_elements_by_xpath('//td[(preceding-sibling::td="半場控球率" or following-sibling::td="半場控球率") and not(div)]')]

相关问题 更多 >