从多个 div 中抓取第一个 child 的属性(selenium)

Scraping the attribute of the first child from multiple div (selenium)

我正在尝试从多个 div.

中删除第一个 child(跨度)的 class 名称

这里是 html 代码:

<div class="ui_column is-9">
   <span class="name1></span>
   <span class="...">...</span>
   ...
<div class ="ui_column is-9">
   <span class="name2></span>
   <span class="...">...</span>
   ...
<div class ..

URL 页面的完整代码。

我正在使用前五个代码完成此任务 div:

i=0
liste=[]

while i <= 4: 

    parent= driver.find_elements_by_xpath("//div[@class='ui_column is-9']")[i]    
    child= parent.find_element_by_xpath("./child::*")                              
    class_name= child.get_attribute('class')                                  
    i = i+1
    liste.append(nom_classe)

但是你知道有没有更简单的方法呢?

您可以直接获取所有这些前 span 个元素,然后提取它们的 class 属性值,如下所示:

liste = []
first_spans = driver.find_elements_by_xpath("//div[@class='ui_column is-9']//span[1]")
for element in first_spans:
    class_name= element.get_attribute('class')
    liste.append(class_name)

您还可以仅通过限制循环 5 次迭代来从前 5 个元素中提取 class 属性值
UPD
好吧,更新你的问题后,答案变得不同并且更简单。
您可以直接获取所需的元素并提取其 class name 属性值,如下所示:

liste = []
first_spans = driver.find_elements_by_xpath("//div[@class='ui_column is-9']//span[contains(@class,'ui_bubble_rating')]")
for element in first_spans:
    class_name= element.get_attribute('class')
    liste.append(class_name)