[Python] Abrir una página web con comandos de Python.

Iniciado por CaronteGold, 5 Enero 2010, 17:25 PM

0 Miembros y 1 Visitante están viendo este tema.

^Tifa^

Que Sistema Operativo estas utilizando CaronteGold? he probado dicho script que realize bajo Linux y funciona perfectamente, tambien lo probe bajo Windows XP pero tuve que colocarle la ruta completa donde estaba el ejecutable principal del navegador. Digase:

os.system("C:\Firefox\bin\firefox.exe  www.google.com")

Por ejemplificar.

Verificate si puedes desde una terminal (Si hablamos de Linux) puedes ejecutar firefox sin colocarle la ruta donde este esta, si es posible o se ejecuta deberia sin problema alguno arrancar desde Python, pero sino puedes ya que la ruta no esta en el PATH global intenta o ponerlo en el PATH global o colocar la ruta completa adentro de la funcion system.

CaronteGold


   Tengo Windows XP, y por ejemplo si en el cmd pongo "start firefox.exe" va bien... , y aún poniendo la ruta en Python de esta forma:

import os

os.system("C:\Archivos de programa\Mozilla Firefox\firefox.exe www.google.com")

  No me funciona tampoco, no da error ni nada, pero no abre.

Littlehorse

Prueba asi:

Código (python) [Seleccionar]

import webbrowser
url = 'www.google.com'
nav=webbrowser.get('mozilla')
nav.open_new(url)

An expert is a man who has made all the mistakes which can be made, in a very narrow field.

CaronteGold

Cita de: Littlehorse en  6 Enero 2010, 19:50 PM
Prueba asi:

Código (python) [Seleccionar]

import webbrowser
url = 'www.google.com'
nav=webbrowser.get('mozilla')
nav.open_new(url)



    nav=webbrowser.get('mozilla')

  raise Error("could not locate runnable browser")
Error: could not locate runnable browser


  Me dan esos errores.

Novlucker

A mi tampoco me funciona el elegir otro navegador ... habrá que revisar las funciones del modulo webbrowser, pero la verdad, ... tengo mucha pereza  :xD
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Littlehorse

#15
Es que la documentacion lo aclara:

[1]   Executables named here without a full path will be searched in the directories given in the PATH environment variable.

Que en Windows lo tienes en:

Propiedades del sistema>Opciones avanzadas>Variables de entorno.

Lo facil seria hacer:

Código (python) [Seleccionar]

import os
f= "d:\\progra~1\\firefox\\firefox.exe www.google.com"
os.system(f)


Saludos!
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Carloswaldo

También puedes hacer esto (para windows)

Código (python) [Seleccionar]
import os
os.system("start www.google.com")


que es más simple xD para abrirlo con firefox se supone que el código sería este:

Código (python) [Seleccionar]
import webbrowser
nav = webbrowser.Mozilla('mozilla')
nav.open_new("www.google.com")


Pero me da un error raro :/

Littlehorse

#17
Es que en el primer caso entonces es preferible usar Windows-default con webbrowser.
En el segundo si no me falla tenes un error en la linea de webbrowser.mozilla, pero no estoy seguro. Pero sin mas, eso solo va a funcionar si la ruta del mozilla existe en las variables de entorno, de otro modo hay que registrar el tipo de navegador con register.

[1]   Executables named here without a full path will be searched in the directories given in the PATH environment variable.

La ruta del mozilla supongo que la puedes sacar del registro en HKEY_LOCAL_MACHINE\Software\Mozilla\Mozilla Firefox\Aca la version instalada\ y ahi tendras dos claves: PathToExe e Instal directory.

Otra forma podria ser:

Código (python) [Seleccionar]
import os
import subprocess

url='http://www.google.com'
nav = 'd:\\progra~1\\Firefox\\firefox.exe'

if os.path.isfile(nav):
      subprocess.Popen([nav, url])
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Carloswaldo

El error que me da es este

>>> nav.open_new("www.google.com")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python31\lib\webbrowser.py", line 152, in open_new
    return self.open(url, 1)
  File "C:\Python31\lib\webbrowser.py", line 276, in open
    success = self._invoke(args, True, autoraise)
  File "C:\Python31\lib\webbrowser.py", line 239, in _invoke
    stderr=inout, preexec_fn=setsid)
  File "C:\Python31\lib\subprocess.py", line 604, in __init__
    raise ValueError("close_fds is not supported on Windows "
ValueError: close_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr

Blitzkrieg'

Cita de: Carloswaldo en  6 Enero 2010, 23:16 PM
También puedes hacer esto (para windows)

Código (python) [Seleccionar]
import os
os.system("start www.google.com")


que es más simple xD para abrirlo con firefox se supone que el código sería este:

Código (python) [Seleccionar]
import webbrowser
nav = webbrowser.Mozilla('mozilla')
nav.open_new("www.google.com")


Pero me da un error raro :/
Pero entonces si el usuario no tiene firefox, no abre, verdad?