如何使用Beautiful或Selenium在Python中基于div id将arialabel提取为文本

2024-05-13 04:15:42 发布

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

<div id="i19" class="quantumWizTogglePapercheckboxEl appsMaterialWizTogglePapercheckboxCheckbox docssharedWizToggleLabeledControl freebirdThemedCheckbox freebirdThemedCheckboxDarkerDisabled freebirdMaterialWidgetsToggleLabeledCheckbox isCheckedNext isChecked" jscontroller="EcW08c" jsaction="keydown:I481le;dyRcpb:dyRcpb;click:cOuCgd; mousedown:UX7yZ; mouseup:lbsD7e; mouseenter:tfO1Yc; mouseleave:JywGue; focus:AHmuwe; blur:O22p3e; contextmenu:mg9Pef;touchstart:p6p2H; touchmove:FwuNnf; touchend:yfqBxc(preventMouseEvents=true|preventDefault=true); touchcancel:JMtRjd;" jsshadow="" jsname="FkQz1b" aria-label="Al-Baraka Bank Limited" data-answer-value="Al-Baraka Bank (Pakistan) Limited" role="checkbox" aria-checked="true" tabindex="0">

您好,我正在尝试获取放置在此divAl-Baraka Bank Limited中的aria标签内的文本,其div id为i19。基本上,我是在点击一个复选框,我希望文本即aria标签被保存到一个变量,这样我就可以在其他地方再次使用它


Tags: 文本dividtrue标签classbankal
2条回答

我将您的数据作为html,您可以根据id找到div,然后提取它的属性

html="""<div id="i19" class="quantumWizTogglePapercheckboxEl appsMaterialWizTogglePapercheckboxCheckbox docssharedWizToggleLabeledControl freebirdThemedCheckbox freebirdThemedCheckboxDarkerDisabled freebirdMaterialWidgetsToggleLabeledCheckbox isCheckedNext isChecked" jscontroller="EcW08c" jsaction="keydown:I481le;dyRcpb:dyRcpb;click:cOuCgd; mousedown:UX7yZ; mouseup:lbsD7e; mouseenter:tfO1Yc; mouseleave:JywGue; focus:AHmuwe; blur:O22p3e; contextmenu:mg9Pef;touchstart:p6p2H; touchmove:FwuNnf; touchend:yfqBxc(preventMouseEvents=true|preventDefault=true); touchcancel:JMtRjd;" jsshadow="" jsname="FkQz1b" aria-label="Al-Baraka Bank Limited" data-answer-value="Al-Baraka Bank (Pakistan) Limited" role="checkbox" aria-checked="true" tabindex="0">
"""
from bs4 import BeautifulSoup
soup=BeautifulSoup(html,"lxml")
soup.find("div",attrs={"id":"i19"})['aria-label']

输出:

'Al-Baraka Bank Limited'

或:

它还以dictnory的形式返回,这样您就可以根据键查找以从中提取值

soup.find("div",attrs={"id":"i19"}).attrs

如果该idunique,则可以执行get_attribute来获取属性值

aria_label = driver.find_element(By.ID, "i19").get_attribute('aria-label')
print(aria_label)

相关问题 更多 >