es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtengo el valor de un elemento específico de una lista en Selenium dentro de una clase div, cuando hay múltiples div con la misma clase?

Me gustaría extraer el número 7011 de este sitio web: https://www.cpbl.com.tw/box?year=2013&KindCode=A&gameSno=54
El HTML fuente alrededor de la área de donde quiero extraerlo es el siguiente:

<div class="GameNote"><ul><li><span>時間</span>03:28</li> <li><span>觀眾</span>7011</li></ul>

Hay más de un div con la clase “GameNote” y cuando intenté lo siguiente, solo me dio el primer div con esa clase, y no el que quería:

driver = wd.Chrome()
wait = WebDriverWait(driver, 3)
driver.get('https://www.cpbl.com.tw/box?year=2013&KindCode=A&gameSno=54')
att = driver.find_element_by_xpath("//div[@class='GameNote']")
tab_att = att.get_attribute('innerHTML')
attendance = read_html(tab_att)
driver.close()

También necesito ayuda para obtener los elementos de la lista.

Gracias.

Versiones:
Python: 3.7.6
Spyder: 4.0.1

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para extraer el número 7011 del sitio web, puede modificar la expresión XPath para apuntar al div específico con la información de asistencia.

    driver = wd.Chrome()
    wait = WebDriverWait(driver, 3)
    
    driver.get('https://www.cpbl.com.tw/box?year=2013&KindCode=A&gameSno=54')
    
    # apuntar al div específico con información de asistencia
    att = driver.find_element_by_xpath("//div[@class='GameNote']/ul/li[2]")
    
    # extraer el número de asistencia
    attendance = att.text.split()[-1]
    
    print(attendance)
    
    driver.close()
    

    Este código debería extraer el número de asistencia (7011 en este caso) del sitio web.

    En cuanto a obtener los elementos de la lista, puede modificar la expresión XPath para apuntar al elemento ul dentro del div específico con información de asistencia.

    driver = wd.Chrome()
    wait = WebDriverWait(driver, 3)
    
    driver.get('https://www.cpbl.com.tw/box?year=2013&KindCode=A&gameSno=54')
    
    # apuntar al ul específico dentro del div con información de asistencia
    att_list = driver.find_elements_by_xpath("//div[@class='GameNote']/ul")[1]
    
    # extraer los elementos de la lista
    items = [item.text for item in att_list.find_elements_by_tag_name('li')]
    
    print(items)
    
    driver.close()
    

    Este código debería extraer los elementos de la lista (“時間 03:28” y “觀眾 7011”) del sitio web.

Comments are closed.