martes, 3 de noviembre de 2015

Abrir páginas web en un navegador con webbrowser


El módulo webbrowser de la librería estándar de Python incluye varias funciones para abrir páginas web en un navegador Internet; y aunque hay otras posibilidades, para abrir una URL, será suficiente con llamar a la función webbrowser.open().

Además, en un sistema GNU/Linux sin entorno gráfico será posible invocar un navegador en modo texto como lynx o elinks.

También, será podrá definir la variable de entorno BROWSER con una lista con los nombres de los navegadores disponibles en un equipo. Estos nombres deben aparecer separados con el caracter que devuelva os.pathsep. (Si dentro de la lista aparece junto al nombre de un navegador el argumento %s éste será sustituido por la URL de la página que se intenta abrir).

El módulo webbrowser también se puede utilizar desde la línea de comandos:

python -m webbrowser -t "http://www.python.org"

El argumento -t hará que la página indicada se abra en una nueva pestaña de la ventana actual del navegador y el argumento -n que se abra, si es posible, en una nueva ventana.

Abrir una página en el navegador web: open()


La función webbrowser.open() abre una URL en un navegador web.

open(url, new=0, autoraise=True)

Argumentos de la función:
  • url: URL, dirección de una página web
  • new=0|1|2: 0) Si es posible la página se abrirá en la misma ventana del navegador. 1) Si es posible la página se abrirá en una nueva ventana. 2) Si es posible la URL se abrirá en una nueva página (con otra etiqueta) de la ventana actual.
  • autoraise: Si su valor es True, siempre que sea posible, la ventana se situará por encima de otras ventanas existentes.

Ejemplo: Abre una página web en el navegador web

import webbrowser
webbrowser.open("http://www.python.org", new=2, autoraise=True)

Abrir una página en una nueva ventana: open_new()


La función webbrowser.open_new() abre, siempre que sea posible, una URL en una nueva ventana del navegador por defecto.

open_new(url)

Ejemplo: Abre una página en nueva ventana del navegador

import webbrowser
webbrowser.open_new("https://pypi.python.org/pypi")

Abrir una página en una nueva pestaña: open_new_tab()


La función webbrowser.open_new_tab() abre una URL en una pestaña nueva de la ventana actual del navegador.

webbrowser.open_new_tab(url)

Ejemplo: Abre una página en una nueva pestaña de la ventana actual

import webbrowser
webbrowser.open_new_tab("https://www.python.org/psf-landing/")

Abrir una página con un navegador específico: get()


La función webbrowser.get() obtiene una instancia (controlador) de un navegador específico que se podrá utilizar para abrir documentos web utilizando las funciones: open(), open_new(), y open_new_tab().

get(using=None)

Si el argumento using es None se obtendrá el controlador del navegador predeterminado en función de cada entorno de trabajo y teniendo en cuenta el valor de la variable BROWSER.

Ejemplo: Abre una página en el navegador Chromium

import webbrowser

nav1 = webbrowser.get("chromium")
nav1.open("www.elpais.es")
Ejemplo: Abrir página en el navegador Elinks (modo texto)
nav2 = webbrowser.get("elinks")
nav2.open("www.eldiario.es")

Se asume que los navegadores están disponibles en el sistema. En caso contrario, se producirá una excepción.


Registrar un nuevo navegador: register()


La función webbrowser.register() registra un nuevo navegador. Una vez registrado la función get() podrá devolver su controlador.

El registro es útil cuando se declara la variable BROWSER o cuando se utiliza la función get() con un argumento que coincida con el nombre del controlador declarado.

Si el argumento instance no se facilita o es None el constructor puede ser llamado sin parámetros cuando sea necesario crear una instancia. Si se proporciona instance, el constructor no puede ser llamado y su valor debe ser None.

Ejemplo: Registra el navegador "firefox" como si fuera otro "navegador"

En el ejemplo siguiente se registra el navegador firefox como si fuera otro diferente para mostrar cómo utilizar la función register(). Para ello es necesario conocer la ruta donde se encuentra instalado el navegador.

import webbrowser

comando = "/usr/bin/firefox %s"
nav3 = webbrowser.get(comando)
webbrowser.register("navegador", None, nav3)
webbrowser.get("navegador").open("http://www.python.org")


Ir al índice del tutorial de Python