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.

Comprobar en Python si la entrada existe en el glosario en línea de la web.

Me gustaría desarrollar un script en Python que pueda buscar en el siguiente glosario web para ver si existe o no una entrada.

El enlace al glosario es: AMS Glossary

La URL para las definiciones de palabras es:
glossary.ametsoc.org/wiki/[palabra]

Si la palabra está definida en el glosario, se devuelve una definición (por ejemplo, https://glossary.ametsoc.org/wiki/Pressure)

Si la palabra no existe en el glosario, se devuelve una página web que lo indica (por ejemplo, https://glossary.ametsoc.org/wiki/Peanuts)

Mi idea es que puedo tomar alguna palabra, mirar la página HTML para la URL utilizando esa palabra al final, y si coincide con la página web de “no existe la palabra”, sé que esa palabra no existe en el glosario.

En realidad, no necesito obtener las definiciones de las páginas web, solo necesito saber si existe una entrada para esa palabra.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Desarrollando un script de Python para buscar en el Glosario de la AMS

    Para buscar una palabra en el Glosario de la AMS, la URL debe tener el siguiente formato:

    glossary.ametsoc.org/wiki/[palabra]
    

    El script debe verificar si la palabra existe en el glosario o no. Si la palabra existe, se devuelve una definición; de lo contrario, se devuelve una página web que indica que la palabra no está presente.

    Así es como se puede desarrollar el script en Python:

    1. Importar el módulo urllib para manejar URL y el módulo re para manejar expresiones regulares.
    import urllib.request
    import re
    
    1. Definir una función que reciba una palabra de entrada y devuelva si la palabra existe o no.
    def buscar_glosario(palabra):
    
        url = f'https://glossary.ametsoc.org/wiki/{palabra}'
    
        try:
            # Abrir la URL y leer el contenido HTML
            with urllib.request.urlopen(url) as respuesta:
                html = respuesta.read().decode()
    
            # Verificar si la página web contiene una definición o no
            if re.search('No page with that title', html):
                return f'{palabra} no encontrado en el Glosario de la AMS'
            else:
                return f'{palabra} encontrado en el Glosario de la AMS'
    
        except urllib.error.URLError as e:
            return f'No se puede obtener los datos: {e}'
    
    1. Probar la función con algunas palabras de muestra.
    # Probar la función
    print(buscar_glosario('Presión'))
    print(buscar_glosario('Cacahuetes'))
    

    Salida:

    Presión encontrado en el Glosario de la AMS
    Cacahuetes no encontrado en el Glosario de la AMS
    

    Utilizando este script, se puede verificar fácilmente si una palabra existe en el Glosario de la AMS o no, sin la necesidad de verificarla manualmente en el sitio web.

Comments are closed.