webbrowser — Mostrar páginas Web

Propósito:Utiliza el módulo webbrowser para mostrar páginas Web a tus usuarios.

El módulo webbrowser incluye funciones para abrir URLs en navegadores en forma interactiva. El módulo incluye un registro de los navegadores disponibles en caso de que haya múltiples opciones disponibles en el sistema. Puede también controlarse con la variable de entorno BROWSER.

Ejemplo simple

Para abrir una página en el navegador, usa la función open().

webbrowser_open.py
import webbrowser

webbrowser.open(
    'https://docs.python.org/3/library/webbrowser.html'
)

La URL se abre en una ventana del navegador y esa ventana se eleva a la parte superior de la pila de ventanas. La documentación dice que una ventana existente se reutilizará, si es posible, pero el comportamiento real puede depender de la configuración de tu navegador. Al usar Firefox en macOS, una nueva ventana fue siempre creada.

Ventanas vs pestañas

Si siempre deseas que se use una nueva ventana, usa open_new().

webbrowser_open_new.py
import webbrowser

webbrowser.open_new(
    'https://docs.python.org/3/library/webbrowser.html'
)

Si prefieres crear una nueva pestaña, usa open_new_tab() en su lugar.

Usar un navegador específico

Si por alguna razón tu aplicación necesita usar un navegador específico, puedes acceder al conjunto de controladores de navegador registrados utilizando la función get(). El controlador de navegador tiene métodos para open(), open_new(), y open_new_tab(). Esta ejemplo obliga el uso del navegador lynx:

webbrowser_get.py
import webbrowser

b = webbrowser.get('lynx')
b.open('https://docs.python.org/3/library/webbrowser.html')

Consulta la documentación del módulo para obtener una lista de los tipos de navegadores disponibles.

Variable BROWSER

Los usuarios pueden controlar el módulo desde fuera de su aplicación configurando la variable de entorno BROWSER con los nombres o comandos del navegador a intentar. El valor debe consistir en una serie de nombres de navegador separados por os.pathsep. Si el nombre incluye %s, el nombre es interpretado como un comando literal y ejecutado directamente con el %s reemplazado por la URL. De lo contrario, el nombre se pasa a get() para obtener un objeto controlador del registro.

Por ejemplo, este comando abre la página web en lynx, asumiendo que está disponible, sin importar qué otros navegadores estén registrados.

$ BROWSER=lynx python3 webbrowser_open.py

Si ninguno de los nombres en BROWSER funciona, webbrowser recae en su comportamiento por defecto.

Interfaz de línea de comandos

Todas las características del módulo webbrowser están disponibles a través de la línea de comandos, así como desde dentro de tu programa Python.

$ python3 -m webbrowser

Usage: .../lib/python3.6/webbrowser.py [-n | -t] url
    -n: open new window
    -t: open new tab

Ver también