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 comprobar eficientemente el texto de una página para una lista de palabras clave en Selenium?

Tengo una lista de palabras clave (‘[‘a’, ‘b’, ‘c’]’) y me gustaría verificar cuáles aparecen en una página determinada, utilizando Selenium (idealmente, cada una con el número de ocurrencias).

La forma ingenua sería buscar cada una por separado usando XPATH (‘//*[contains(text(),’a’)]’) (o texto del cuerpo, origen de la página, etc.), pero parece excesivo recorrer toda la página una y otra vez para cada una de las cadenas.

Tengo varios sitios para revisar, por lo que me gustaría hacerlo de manera eficiente. ¿Simplemente obtengo todo el texto de toda la (incluido el título y la descripción en la parte superior del ) y luego realizo todas las búsquedas por mi cuenta fuera del alcance de Selenium (por ejemplo, Rabin-Karp, etc.), o hay una solución razonable lista para usar?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Una forma eficiente de lograr esta tarea sería obtener todo el texto de la fuente HTML utilizando Selenium y luego realizar la búsqueda de cadenas utilizando el método count() incorporado de Python para cada palabra clave en la lista.

    Aquí tienes un fragmento de código de muestra que demuestra cómo puedes lograr esto:

    from selenium import webdriver
    
    url = "https://example.com"
    keywords = ['a', 'b', 'c']
    
    # Inicializa el controlador del navegador
    driver = webdriver.Chrome()
    
    # Abre la URL
    driver.get(url)
    
    # Obtiene todo el texto de la fuente de la página
    page_text = driver.page_source
    
    # Realiza la búsqueda de cadenas utilizando el método count()
    for keyword in keywords:
        count = page_text.count(keyword)
        print(f"La palabra clave '{keyword}' ocurre {count} veces en la página")
    

    Este fragmento de código utiliza Selenium para abrir la página web especificada por la variable url, obtiene todo el texto de la fuente de la página utilizando driver.page_source y luego itera sobre la lista de palabras clave para realizar una búsqueda de cadenas utilizando el método count() de Python.

    Ten en cuenta que este método distingue entre mayúsculas y minúsculas, por lo que si deseas realizar una búsqueda que no distinga entre mayúsculas y minúsculas, puedes convertir tanto el texto de la página como las palabras clave a minúsculas (o mayúsculas) antes de realizar la búsqueda.

Comments are closed.