gpt4 book ai didi

python - 如何在Python中通过Selenium Webdriver从HTML标签的所有子标签中提取文本

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:02 24 4
gpt4 key购买 nike

我有这个 HTML

<tr height="22px">
<td colspan="1" class="det" width="40%">Net Sales</td>

<td align="right" class="det">2,548.00</td>
<td align="right" class="det">1,946.36</td>
<td align="right" class="det">1,139.14</td>
<td align="right" class="det">2,345.60</td>
<td align="right" class="det">1,323.84</td>
</tr>

我使用文本找到元素:

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("url")

quarterly_results_data = driver.find_element_by_xpath("//* [contains(text(),'Net Sales)]")

print(quarterly_results_data.text)

我得到:

Net Sales

但是我想要父 <tr> 之间的所有文本:

Net Sales
2,548
1,946
...

使用:

print(quarterly_results_data.parent.text)

没有给出任何结果。

我知道这可以通过 beautifulsoup 来完成,但是每次单击新链接时我都必须使用 html 解析器。请帮助确定正确的语法。

最佳答案

您应该获得父元素的文本,如下所示:

quarterly_results_data = driver.find_element_by_xpath("//*[contains(text(),'Net Sales')]/parent::*")
print(quarterly_results_data.text)

quarterly_results_data = driver.find_element_by_xpath("//tr[td[text()='Net Sales']]")
print(quarterly_results_data.text)

如果您需要单独打印每个td值:

for child in quarterly_results_data.find_elements_by_xpath('./td'):
print(child.text)

关于python - 如何在Python中通过Selenium Webdriver从HTML标签的所有子标签中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42455475/

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