首页 > 解决方案 > 从 Selenium 中的标签中抓取其他元素

问题描述

网页上的脚本如下:

<td class="bc bs o" data-bk="B3" data-odig="7.5" data-o="13/2" data-hcap="" data-fodds="7.5" data-ew-denom="4" data-ew-places="5"><p>7.5</p></td>

我想为 Selenium 中的驱动程序中的所有 td 标签提取“data-bk”和“data-odig”值。我知道每个 td 标签都有 'data-bk' 和 'data-odig' 值,但我不知道每个标签的它们是什么(“B3”“7.5”)。我想打印“data-bk”值列表(“B3”等)。我尝试了以下方法:

answer = driver.find_element_by_css_selector('td[data-bk]')
print(answer.text)

但这不起作用

标签: pythonseleniumweb-scrapingcss-selectorswebdriver

解决方案


获取所有标签data-bk的值data-odigtd

首先,您需要使用 find_elements_by_css_selector() 它将返回list元素,然后您需要iterate

其次要获得attribute value您需要使用的element.get_attribute("attributename")


代码

Databk=[item.get_attribute("data-bk") for item in driver.find_elements_by_css_selector("td[data-bk][data-odig]")]
DataOdig=[item.get_attribute("data-odig") for item in driver.find_elements_by_css_selector("td[data-bk][data-odig]")]
print(Databk)
print(DataOdig)

这将返回data-bk和列表data-odig


推荐阅读