21.1. webbrowser
— 方便的浏览器操作库¶
源代码: Lib / webbrowser.py
webbrowser
模块提供了一个可以向用户展示Web文档的高级接口。在绝大多数情况下,使用本模块的open()
函数即可。
在Unix环境下,图形浏览器通常依赖 X11,当图形浏览器不可用或X11不可用时,文本模式的浏览器就派上用场了。如果使用文本模式的浏览器,则调用进程将阻塞直到用户退出浏览器(译注:本句需要更易于理解的翻译)。
如果环境变量BROWSER
存在,它被解释为os.pathsep
-separated list of browsers to try ahead of the platform defaults.当列表部分的值包含字符串%s
时,它被解释为要与参数URL替换为%s
一起使用的字面值浏览器命令行;如果该部分不包含%s
,它只是被解释为要启动的浏览器的名称。[1]
对于非Unix平台,或当Unix上有远程浏览器时,控制进程不会等待用户完成浏览器,但允许远程浏览器在显示器上保持自己的窗口。如果远程浏览器在Unix上不可用,则控制进程将启动一个新的浏览器并等待。
脚本webbrowser 可以用作命令行接口。它接受 URL 作为参数。它也接受如下可选参数:-n
如果可以,在新浏览器窗口打开URL; -t
在浏览器新标签页(TAB)打开URL。当然,这两个选项是互斥的,不可共存。用法示例︰
python -m webbrowser -t "http://www.python.org"
异常定义:
- exception
webbrowser.
Error
¶ 浏览器控制引发的异常。
可用函数:
-
webbrowser.
open
(url, new=0, autoraise=True)¶ 调用默认浏览器打开 url 。如果new参数为0,将尽可能在同一个浏览器窗口打开 url。如果new参数为1,将使用新的浏览器窗口打开指定url。如果 new参数为2,则使用新浏览器标签页(TAB)打开。如果autoraise是
True
,则窗口会被调用(请注意,在许多窗口管理器下,不管此变量的设置如何)。请注意,在某些平台上,尝试使用此函数打开文件名,可能会工作并启动操作系统的关联程序。但是,这既不支持也不便携。
-
webbrowser.
open_new
(url)¶ 如果可能,在默认浏览器的新窗口中打开url,否则,在唯一的浏览器窗口中打开url。
-
webbrowser.
open_new_tab
(url)¶ 如果可能,在默认浏览器的新页面(“标签”)中打开url,否则等效于
open_new()
-
webbrowser.
get
(using=None)¶ 使用返回浏览器类型的控制器对象。如果使用为
None
,则返回适用于调用方环境的默认浏览器的控制器。
-
webbrowser.
register
(name, constructor, instance=None)¶ 注册浏览器类型名称。一旦注册了浏览器类型,
get()
函数可以返回该浏览器类型的控制器。如果未提供实例或者None
,则会调用构造函数,而无需创建实例。如果提供实例,则构造函数将永远不被调用,并且可以是None
。此入口点仅在计划设置
BROWSER
变量或调用get()
时使用非空参数匹配处理程序。
预定义了多种浏览器类型。该表给出可以传递到get()
函数的类型名称以及控制器类的对应实例化,这些都在本模块中定义。
类型名称 | 班级名称 | 备注 |
---|---|---|
'mozilla' | Mozilla('mozilla') | |
'firefox' | Mozilla('mozilla') | |
'netscape' | Mozilla('netscape') | |
'galeon' | Galeon('galeon') | |
'epiphany' | Galeon('epiphany') | |
'skipstone' | BackgroundBrowser('skipstone') | |
'kfmclient' | Konqueror() | (1) |
'konqueror' | Konqueror() | (1) |
'kfm' | Konqueror() | (1) |
'mosaic' | BackgroundBrowser('mosaic') | |
'opera' | Opera() | |
'grail' | Grail() | |
'links' | GenericBrowser('links') | |
'elinks' | Elinks('elinks') | |
'lynx' | GenericBrowser('lynx') | |
'w3m' | GenericBrowser('w3m') | |
'windows-default' | WindowsDefault | (2) |
'macosx' | MacOSX('default') | (3) |
'safari' | MacOSX('safari') | (3) |
'google-chrome' | Chrome('google-chrome') | |
'chrome' | Chrome('chrome') | |
'chromium' | Chromium('chromium') | |
'chromium-browser' | Chromium('chromium-browser') |
备注:
- “Konqueror”是Unix的KDE桌面环境的文件管理器,只有在KDE正在运行时才有意义。一些可靠的检测KDE的方法会很好;
KDEDIR
变量不足。还要注意,即使在使用带有KDE 2的konqueror命令时也使用名称“kfm” - 实现选择了运行Konqueror的最佳策略。 - 仅在Windows平台上。
- 仅在Mac OS X平台上。
版本3.3中的新功能:已添加对Chrome / Chromium的支持。
这里有一些简单的例子:
url = 'http://docs.python.org/'
# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(url)
# Open URL in new window, raising the window if possible.
webbrowser.open_new(url)
21.1.1. Browser Controller Objects¶
浏览器控制器提供了这些方法,它们并行了三个模块级的便利功能:
-
controller.
open
(url, new=0, autoraise=True)¶ 使用此控制器处理的浏览器显示url。如果new为1,则尽可能打开新的浏览器窗口。如果new为2,则尽可能打开新的浏览器页面(“选项卡”)。
-
controller.
open_new
(url)¶ 如果可能,在此控制器处理的浏览器的新窗口中打开url,否则在唯一的浏览器窗口中打开url。别名
open_new()
。
-
controller.
open_new_tab
(url)¶ 如果可能,在此控制器处理的浏览器的新页面(“标签”)中打开url,否则等效于
open_new()
脚注
[1] | 将在 PATH |