在一个span之后,用Python中的Selenium复制下一个<a>..</a>链接中的文本

2024-05-23 13:41:05 发布

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

对于汉字词典网页的列表,我需要在<span>Radical:</span>元素之后提取<a>...</a>元素中显示的文本。以下是网站的示例代码:

https://www.archchinese.com/chinese_english_dictionary.html?find=松

<br> <span>»&nbsp;Radical:&nbsp;&nbsp;</span> <a target="_archchinese" class="char-effect" style="font-family: KaiTi,STKaiti,DFKai-SB,BiauKai,Arial !important;font-size:1.5em !important;color: #0000FF !important; " href="https://www.archchinese.com/chinese_english_dictionary.html?find=木">木</a>

我只想从中提取“木" i、 e.显示在<a>...</a>元素内的文本

我已经试过:

  • driver.find_elements_by_xpath(/html/body/div[1]/div[5]/div[2]/div[1]/div[5]/div[2]/div[2]/a[6]

但是变量a[x]在不同的页面中会发生变化,这取决于<div id="charDef">分隔符中包含的链接数量,该分隔符在每个汉字页面上包含多个变量。此外,我假设的属性名称可以用来挑出这个<a>...</a>目标、类、部分链接等元素似乎出现在页面上的许多其他元素中,即不是唯一的

在这种情况下,如何简单地让Selenium提取元素中紧跟在<span>Radical:</span>元素之后的<a>...</a>之间的文本


Tags: https文本divcom元素htmlwww页面
1条回答
网友
1楼 · 发布于 2024-05-23 13:41:05
wait = WebDriverWait(driver, 20)
driver.get("https://www.archchinese.com/chinese_english_dictionary.html?find=%E6%9D%BE")

旧章节

warning = wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@id='charDetailPane']//a[6]")))
print warning.text

更新部分:

//span[contains(text(),'Radical:')]/following-sibling::a

注:

将以下导入添加到您的代码中

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait

输出:

相关问题 更多 >