21.1. webbrowser
—便捷的Web浏览器控制器¶
源代码: Lib/webbrowser.py
webbrowser
模块提供了一个高级界面,允许向用户显示基于Web的文档。在大多数情况下,从这个模块调用 open()
函数将做正确的事情。
在Unix下,X11下首选使用图形浏览器,但如果图形浏览器不可用或X11显示不可用,则将使用文本模式浏览器。如果使用文本模式浏览器,调用进程将阻塞,直到用户退出浏览器。
如果环境变量 BROWSER
存在,它将被解释为 os.pathsep
分隔的浏览器列表,以尝试提前到平台默认值。当列表部分的值包含字符串 %s
时,则将其解释为要与参数URL替换 %s
一起使用的文字浏览器命令行;如果该部分不包含 %s
,它只是被解释为要启动的浏览器的名称。 [1]
对于非Unix平台,或当Unix上有远程浏览器时,控制进程不会等待用户完成浏览器,但允许远程浏览器在显示器上维护自己的窗口。如果远程浏览器在Unix上不可用,控制进程将启动一个新的浏览器并等待。
脚本 webbrowser 可以用作模块的命令行界面。它接受一个URL作为参数。它接受以下可选参数:-n
在可能的情况下在新的浏览器窗口中打开URL; -t
在新的浏览器页面(“选项卡”)中打开该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,则尽可能打开新的浏览器窗口。如果 new 为2,则尽可能打开新的浏览器页面(“选项卡”)。如果 autoraise 是
True
,则尽可能提高窗口(注意,在许多窗口管理器下,不管此变量的设置如何,都会出现此窗口)。请注意,在某些平台上,尝试使用此函数打开文件名,可能会工作并启动操作系统的关联程序。但是,这既不支持也不便携。
-
webbrowser.
open_new
(url)¶ 如果可能,在默认浏览器的新窗口中打开 url,否则,在唯一的浏览器窗口中打开 url。
-
webbrowser.
open_new_tab
(url)¶ 在默认浏览器的新页面(“选项卡”)中打开 url (如果可能),否则等效于
open_new()
。
-
webbrowser.
get
(using=None)¶ 返回 using 浏览器类型的控制器对象。如果 using 是
None
,则返回适用于调用程序环境的默认浏览器的控制器。
-
webbrowser.
register
(name, constructor, instance=None)¶ 注册浏览器类型 name。一旦注册了浏览器类型,
get()
功能可以返回该浏览器类型的控制器。如果没有提供 instance,或者是None
,那么将在没有参数的情况下调用 constructor,以在需要时创建实例。如果提供 instance,则 constructor 将永远不被调用,并且可以是None
。此入口点仅在计划设置
BROWSER
变量或调用get()
与非声明参数匹配您声明的处理程序的名称时有用。
预定义了多种浏览器类型。该表给出了可以传递给 get()
函数的类型名称以及控制器类的对应实例化,这些都在本模块中定义。
类型名称 |
班级名称 |
笔记 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
笔记:
“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. 浏览器控制器对象¶
浏览器控制器提供了这些方法,它们并行了三个模块级的便利功能:
-
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] | 这里命名的没有完整路径的可执行文件将在 |