gpt4 book ai didi

python - Selenium 获取下一个 tr 给定条件适用于前一个 tr

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:14 24 4
gpt4 key购买 nike

设置

我正在尝试在维基百科上抓取法国地区的信息框。

具体来说,我需要获取每个区域的人口。对于每个地区,其人口在每个维基页面的信息框中都有说明,例如见https://en.wikipedia.org/wiki/Mayotte .


HTML

对于示例页面,我感兴趣的信息框 html 部分如下所示,

<tr class="mergedtoprow">
<th colspan="2" style="text-align:center;text-align:left">Area
<div style="font-weight:normal;display:inline;"></div></th></tr>
<tr class="mergedrow">
<th scope="row">&nbsp;•&nbsp;Total</th>
<td>374&nbsp;km<sup>2</sup> (144&nbsp;sq&nbsp;mi)</td></tr>
<tr class="mergedtoprow">
<th colspan="2" style="text-align:center;text- align:left">
Population
<div style="font-weight:normal;display:inline;">
(2017)
<sup id="cite_ref-census_1-0" class="reference">
<a href="#cite_note-census-1">[1]</a>
</sup>
</div>
</th>
</tr>
<tr class="mergedrow">
<th scope="row">&nbsp;•&nbsp;Total</th>
<td>256,518</td>
</tr>

我需要得到人口数 256,518。


代码

我的计划是选择包含 'Population' 字符串的 tr,然后告诉 selenium 选择它后面的 tr

以下代码成功选择了包含'Population' 字符串的tr

info_box = browser.find_elements_by_css_selector('.infobox').find_element_by_xpath('tbody')

for row in info_box.find_elements_by_xpath('./tr'):

if 'Population' in row.text:

print(row)

现在!我如何告诉 Selenium 在选定的 tr 之后选择 tr

最佳答案

无需遍历所有行。您只需要选择所需的行

尝试此代码行以获得所需的输出:

population = driver.find_element_by_xpath('//tr[contains(th, "Population")]/following-sibling::tr/td').text
print(population)
# 256,518

关于python - Selenium 获取下一个 tr 给定条件适用于前一个 tr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54092769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com