Webbrowser Module
According to Python’s standard documentation, the webbrowser module provides a high-level interface to allow displaying Web-based documents to users. This topic explains and demonstrates proper usage of the webbrowser module.
Opening a URL with Default Browser
Section titled “Opening a URL with Default Browser”To simply open a URL, use the webbrowser.open() method:
import webbrowserwebbrowser.open("http://stackoverflow.com")If a browser window is currently open, the method will open a new tab at the specified URL. If no window is open, the method will open the operating system’s default browser and navigate to the URL in the parameter. The open method supports the following parameters:
url- the URL to open in the web browser (string) [required]new- 0 opens in existing tab, 1 opens new window, 2 opens new tab (integer) [default 0]autoraise- if set to True, the window will be moved on top of other applications’ windows (Boolean) [default False]
Note, the new and autoraise arguments rarely work as the majority of modern browsers refuse these commmands.
Webbrowser can also try to open URLs in new windows with the open_new method:
import webbrowserwebbrowser.open_new("http://stackoverflow.com")This method is commonly ignored by modern browsers and the URL is usually opened in a new tab.
Opening a new tab can be tried by the module using the open_new_tab method:
import webbrowserwebbrowser.open_new_tab("http://stackoverflow.com")Opening a URL with Different Browsers
Section titled “Opening a URL with Different Browsers”The webbrowser module also supports different browsers using the register() and get() methods. The get method is used to create a browser controller using a specific executable’s path and the register method is used to attach these executables to preset browser types for future use, commonly when multiple browser types are used.
import webbrowserff_path = webbrowser.get("C:/Program Files/Mozilla Firefox/firefox.exe")ff = webbrowser.get(ff_path)ff.open("http://stackoverflow.com/")Registering a browser type:
import webbrowserff_path = webbrowser.get("C:/Program Files/Mozilla Firefox/firefox.exe")ff = webbrowser.get(ff_path)webbrowser.register('firefox', None, ff)# Now to refer to use Firefox in the future you can use thiswebbrowser.get('firefox').open("https://stackoverflow.com/")Syntax
Section titled “Syntax”webbrowser.open(url, new=0, autoraise=False)webbrowser.open_new(url)webbrowser.open_new_tab(url)webbrowser.get(usage=None)webbrowser.register(name, constructor, instance=None)
Parameters
Section titled “Parameters”|Parameter|Details
|---|---|---|---|---|---|---|---|---|---
|webbrowser.open()|
|url|the URL to open in the web browser
|new|0 opens the URL in the existing tab, 1 opens in a new window, 2 opens in new tab
|autoraise|if set to True, the window will be moved on top of the other windows
|webbrowser.open_new()|
|url|the URL to open in the web browser
|webbrowser.open_new_tab()|
|url|the URL to open in the web browser
|webbrowser.get()|
|using|the browser to use
|webbrowser.register()|
|url|browser name
|constructor|path to the executable browser (help)
|instance|An instance of a web browser returned from the webbrowser.get() method
Remarks
Section titled “Remarks”The following table lists predefined browser types. The left column are names that can be passed into the webbrowser.get() method and the right column lists the class names for each browser type.
|Type Name|Class Name
|---|---|---|---|---|---|---|---|---|---
|'mozilla'|Mozilla('mozilla')
|'firefox'|Mozilla('mozilla')
|'netscape'|Mozilla('netscape')
|'galeon'|Galeon('galeon')
|'epiphany'|Galeon('epiphany')
|'skipstone'|BackgroundBrowser('skipstone')
|'kfmclient'|Konqueror()
|'konqueror'|Konqueror()
|'kfm'|Konqueror()
|'mosaic'|BackgroundBrowser('mosaic')
|'opera'|Opera()
|'grail'|Grail()
|'links'|GenericBrowser('links')
|'elinks'|Elinks('elinks')
|'lynx'|GenericBrowser('lynx')
|'w3m'|GenericBrowser('w3m')
|'windows-default'|WindowsDefault
|'macosx'|MacOSX('default')
|'safari'|MacOSX('safari')
|'google-chrome'|Chrome('google-chrome')
|'chrome'|Chrome('chrome')
|'chromium'|Chromium('chromium')
|'chromium-browser'|Chromium('chromium-browser')