Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: CaronteGold en 5 Enero 2010, 17:25 pm



Título: [Python] Abrir una página web con comandos de Python.
Publicado por: CaronteGold en 5 Enero 2010, 17:25 pm

 
  Buenas, pues tengo un problema, andaba buscando como abrir una página web( como si fuese start www.google.es en batch) desde Python, y he buscado bastante y no veo nada claro, busqué sobre el módulo subprocess, pero no encontré o no supe hacer para que arranque una web, creo que se podría hacer usando comandos del cmd, con Windows, como si fuese un Batch, pero realmente quisiera saber si se podría hacer con Python.


  Saludos y gracias.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Carloswaldo en 5 Enero 2010, 18:27 pm
Código
  1. import webbrowser
  2. webbrowser.open("www.google.com")

Ahí tienes la documentación :)

http://docs.python.org/library/webbrowser.html


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Novlucker en 5 Enero 2010, 18:35 pm
Psss, no me acordaba para nada de ese módulo, por mi parte lo hubiese hecho con POPEN, pero claro, este abre el navegador por defecto  :D

Saludos


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 5 Enero 2010, 19:02 pm
Me he unido al club  :D

Otra forma rapida tambien.

Código
  1.  
  2. import os
  3.  
  4. os.system("firefox www.google.com")
  5.  
  6.  

Por ejemplo  ;)


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: leogtz en 6 Enero 2010, 01:33 am
Me he unido al club  :D

¿También te unes a python?


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Novlucker en 6 Enero 2010, 01:35 am
[offtopic]Python! Python! Python! Wiiii, ahora todos al post de ejercicios de Python, que han dejado uno para trabajo con sockets :xD[/offtopic]

Es verdad que ^TiFa^ lo estaba aprendiendo :P

Saludos


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: leogtz en 6 Enero 2010, 01:54 am
Offtopic : Naaaa, he sido un vago, no he seguido adelante, estoy siguiendo de poco el libro de "Python para todos", más adelante viene lo de sockets.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 6 Enero 2010, 01:58 am
Tambien puedes:

Código
  1. import urllib
  2. f = urllib.urlopen("http://foro.elhacker.net")
  3. print f.read()
  4.  


Un saludo

Edit: Perdon, no habia leido que querias que fuese igual al comando start de batch. Error mio  ;D


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 6 Enero 2010, 12:49 pm
Si me he unido al club  :D  aunque desconozco aun hasta que nivel de aprendizaje.

Sigo observando la considerable rapidez de respuesta de Perl como CGI vs Python como CGI.

Pero... nunca esta demas agregar un lenguaje script mas al repositorio de la cabeza.  ;-)


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: CaronteGold en 6 Enero 2010, 19:31 pm
Me he unido al club  :D

Otra forma rapida tambien.

Código
  1.  
  2. import os
  3.  
  4. os.system("firefox www.google.com")
  5.  
  6.  

Por ejemplo  ;)

  No me funciona, he probado ha poner también el firefox aparte en comillas y tampoco me funciona :S.

Tambien puedes:

Código
  1. import urllib
  2. f = urllib.urlopen("http://foro.elhacker.net")
  3. print f.read()
  4.  


Un saludo

Edit: Perdon, no habia leido que querias que fuese igual al comando start de batch. Error mio  ;D

  Eso es para ver el código fuente xD.

 
 Carloswaldo, lo tuyo me funcionó pero estuve mirando para poner firefox, con el comando  webbrowser.get , pero no me funciona, tienes idea de como hacerlo para que sea el Firefox ¿?

 

 Gracias a todos, saludos.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 6 Enero 2010, 19:36 pm
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.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: CaronteGold en 6 Enero 2010, 19:43 pm

   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.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 6 Enero 2010, 19:50 pm
Prueba asi:

Código
  1. import webbrowser
  2. url = 'www.google.com'
  3. nav=webbrowser.get('mozilla')
  4. nav.open_new(url)


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: CaronteGold en 6 Enero 2010, 19:56 pm
Prueba asi:

Código
  1. import webbrowser
  2. url = 'www.google.com'
  3. nav=webbrowser.get('mozilla')
  4. 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.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Novlucker en 6 Enero 2010, 21:31 pm
A mi tampoco me funciona el elegir otro navegador ... habrá que revisar las funciones del modulo webbrowser, pero la verdad, ... tengo mucha pereza  :xD


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 6 Enero 2010, 22:28 pm
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
  1. import os
  2. f= "d:\\progra~1\\firefox\\firefox.exe www.google.com"
  3. os.system(f)
  4.  

Saludos!


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Carloswaldo en 6 Enero 2010, 23:16 pm
También puedes hacer esto (para windows)

Código
  1. import os
  2. 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
  1. import webbrowser
  2. nav = webbrowser.Mozilla('mozilla')
  3. nav.open_new("www.google.com")

Pero me da un error raro :/


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 6 Enero 2010, 23:43 pm
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
  1. import os
  2. import subprocess
  3.  
  4. url='http://www.google.com'
  5. nav = 'd:\\progra~1\\Firefox\\firefox.exe'
  6.  
  7. if os.path.isfile(nav):
  8.      subprocess.Popen([nav, url])


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Carloswaldo en 6 Enero 2010, 23:50 pm
El error que me da es este

Código:
>>> 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


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Blitzkrieg' en 7 Enero 2010, 00:12 am
También puedes hacer esto (para windows)

Código
  1. import os
  2. 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
  1. import webbrowser
  2. nav = webbrowser.Mozilla('mozilla')
  3. nav.open_new("www.google.com")

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


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 7 Enero 2010, 00:19 am
No. En ese caso tendrias que agregar un poco mas de codigo para que, en caso de no estar firefox instalado, utilizar el navegador por defecto u otro en todo caso.

@Carlos

Ni idea ese error  :-\


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Carloswaldo en 7 Enero 2010, 00:31 am
Me gustaría que alguien probara el mismo código en linux a ver si corre.

EDITO:

En linux este código funciona perfecto:

Código
  1. >>> import webbrowser
  2. >>> nav = webbrowser.Mozilla('firefox')
  3. >>> nav.open_new("www.google.com")
  4. True
  5. >>>
  6.  

Así que el problema debe ser de Windows xD


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 7 Enero 2010, 00:41 am
Carloswaldo probe tu codigo en un archivo  (No directamente en el interprete) y funciono sin problemas.. bajo Linux.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 7 Enero 2010, 00:43 am
El problema no es Windows. El problema es que no tienes a Firefox en el PATH  :D

Un saludo


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Carloswaldo en 7 Enero 2010, 00:53 am
No, el error dice que es de Windows xD Y sí puse al directorio de firefox en %path%


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: Littlehorse en 7 Enero 2010, 00:58 am
Entonces no se, igualmente creo que ya tiene como 10000 opciones para hacer lo que queria   ;D.

Un saludo


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 7 Enero 2010, 14:15 pm
Hola, acabo de probar lo siguiente en Windows XP con Python 3.1.1 y funciona  ;) prueba haber si te va:

Código
  1.  
  2. import subprocess
  3.  
  4. pagina='www.google.com'
  5.  
  6. subprocess.Popen( '"C:\Program Files\Internet Explorer\iexplore.exe" -brokerredirect %s' % pagina )
  7.  
  8.  


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: CaronteGold en 7 Enero 2010, 16:24 pm

  El código de Littlehorse no me funcinó, no da error, pero no abre nada.

  Y este último de Tifa me da este error (he cambiado la ruta del IE por Mozilla):

    subprocess.Popen( '"C:\Archivos de programa\Mozilla Firefox\firefox.exe" -brokerredirect %s' % pagina )
  File "C:\Python26\lib\subprocess.py", line 595, in __init__
    errread, errwrite)
  File "C:\Python26\lib\subprocess.py", line 804, in _execute_child
    startupinfo)
WindowsError: [Error 123] El nombre de archivo, directorio o etiqueta del volumen no es válido.

  De todas formas da igual, me sirve con el IE, la cosa es que en el Linux no hay IE no ¿?, o al menos no viene predeterminado.

  Saludos.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: ^Tifa^ en 7 Enero 2010, 17:04 pm
EN Linux funciona este perfectamente, que lo postee anteriormente.

Citar
import os
 
os.system("firefox www.google.com")
 
 


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: antkk en 29 Mayo 2015, 14:38 pm
Prueba asi:

Código
  1. import webbrowser
  2. url = 'www.google.com'
  3. nav=webbrowser.get('mozilla')
  4. nav.open_new(url)


en vez de poner mozilla pones firefox, en linux funciona perfectamente.


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: тαптяα en 29 Mayo 2015, 14:51 pm
en vez de poner mozilla pones firefox, en linux funciona perfectamente.
Has reabierto un tema de hace más de 5 años :)



https://docs.google.com/document/d/1OsG_dD3SwbkOmMTg3bAFFRFY69Tq6JQLFf593n97D7Y/preview


Título: Re: [Python] Abrir una página web con comandos de Python.
Publicado por: antkk en 29 Mayo 2015, 15:02 pm
Has reabierto un tema de hace más de 5 años :)



https://docs.google.com/document/d/1OsG_dD3SwbkOmMTg3bAFFRFY69Tq6JQLFf593n97D7Y/preview

No me he dado cuenta de la fecha, estoy realizando unos ejercicios de python y probando cosas he dado con la solución...