Que puis-je utiliser pour demander au système d'exploitation d'ouvrir une URL dans le navigateur par défaut de l'utilisateur ? Je ne m'inquiète pas de la compatibilité entre systèmes d'exploitation ; si ça fonctionne sous Linux, ça me suffit !
Réponses
Trop de publicités?Voici comment ouvrir le navigateur par défaut de l'utilisateur avec une url donnée :
import webbrowser
url = "https://www.google.com/"
webbrowser.open(url, new=0, autoraise=True)
Voici la documentation sur cette fonctionnalité. Elle fait partie des stdlibs de Python :
http://docs.python.org/library/webbrowser.html
J'ai testé ceci avec succès sur Linux, Ubuntu 10.10.
Personnellement, j'ai vraiment ne serait pas utiliser le webbrowser
module.
Il s'agit d'un système compliqué de détection de navigateurs particuliers, qui ne trouvera pas le navigateur par défaut de l'utilisateur s'il en a plusieurs d'installés, et ne trouvera pas un navigateur s'il n'en connaît pas le nom (par exemple Chrome).
Sous Windows, la meilleure solution consiste simplement à utiliser la fonction os.startfile
qui fonctionne également sur une URL. Sous OS X, vous pouvez utiliser la fonction open
commande système. Sous Linux, il y a xdg-open
, une commande standard de freedesktop.org prise en charge par GNOME, KDE et XFCE.
if sys.platform=='win32':
os.startfile(url)
elif sys.platform=='darwin':
subprocess.Popen(['open', url])
else:
try:
subprocess.Popen(['xdg-open', url])
except OSError:
print 'Please open a browser on: '+url
Cela permettra d'offrir une meilleure expérience utilisateur sur les plateformes grand public. Vous pourriez vous rabattre sur webbrowser
sur d'autres plateformes, peut-être. Cependant, si vous êtes sur un système d'exploitation obscur, inhabituel ou intégré où aucune des solutions ci-dessus ne fonctionne, il est probable que webbrowser
échouera aussi.
Vous pouvez utiliser le navigateur web module.
webbrowser.open(url)
Jetez un coup d'œil à la module navigateur web .