2009-10-07 22 views
10

El webbrowser library proporciona una forma conveniente de iniciar una URL con una ventana de navegador a través del método webbrowser.open(). Hay numerosos tipos de navegadores disponibles, pero no parece haber una forma explícita de iniciar Internet Explorer cuando se ejecuta python en Windows.Open IE Browser Window

WindowsDefault solo funciona si Internet Explorer está configurado como el navegador predeterminado, lo cual no es una suposición que yo pueda hacer.

¿Hay alguna forma de abrir explícitamente una URL en Internet Explorer sin volver a llamar a la API de Windows?

+3

¿Hay alguna razón por la que necesita iniciar IE? – voyager

+2

La página que estoy lanzando es un archivo html generado por ms-office local que usa marcado horrible que solo IE puede entender correctamente. Esta será una secuencia de comandos interna, por lo que la autonomía del usuario no es un problema. –

Respuesta

19

código más elegante:

import webbrowser 

ie = webbrowser.get(webbrowser.iexplore) 
ie.open('google.com') 
3

La forma más sencilla:

import subprocess 
subprocess.Popen(r'"C:\Program Files\Internet Explorer\IEXPLORE.EXE" www.google.com') 
+6

Tenga en cuenta que las versiones no inglesas de Windows mantienen el nombre de la carpeta 'Archivos de programa' de forma diferente. 'Archivos de Programa', por ejemplo en español. Debería usar '% PROGRAMFILES%' en su lugar. – voyager

4

Siempre se puede hacer algo como

subprocess.Popen('"C:\\Program Files\\Internet Explorer\\iexplore.exe" http://www.example.com') 
14
>>> ie = webbrowser.get('c:\\program files\\internet explorer\\iexplore.exe') 
>>> ie.open('http://google.com') 
True 
+0

Sigo recibiendo 'Error: no se pudo ubicar el navegador ejecutable' – BritishSteel

7
iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"), 
    "Internet Explorer\\IEXPLORE.EXE") 
ie = webbrowser.BackgroundBrowser(iexplore) 
ie.open(...) 

Esto es lo que el módulo webrowser utiliza internamente.

+0

No funciona en segundo plano. Siempre abre la página. De hecho, lo intenté, es decir. Visible = 0 todavía no funciona. – Fooo

2

Si va a utilizar la secuencia de comandos en más de su máquina, tenga en cuenta que no todo el mundo tiene una versión en Inglés de Ventanas

import subprocess 
import os 

subprocess.Popen(r'"' + os.environ["PROGRAMFILES"] + '\Internet Explorer\IEXPLORE.EXE" www.google.com') 
1

Por favor, intente poner la ruta absoluta del archivo exe de Internet Explorer en tu código.

ie=webbrowser.get("C:\Program Files\Internet Explorer\iexplore.exe") 
ie.open_new("http://google.com")