On this page
20.1. webbrowser —方便的 Web 浏览器控制器
源代码: Lib/webbrowser.py
webbrowser模块提供了一个高级界面,允许向用户显示基于 Web 的文档。在大多数情况下,只需从此模块调用open()函数即可完成正确的操作。
在 Unix 下,图形浏览器是 X11 的首选,但如果图形浏览器不可用或 X11 显示器不可用,则将使用文本模式浏览器。如果使用文本模式浏览器,则调用过程将一直阻塞,直到用户退出浏览器为止。
如果环境变量 BROWSER
存在,则将其解释为覆盖平台默认浏览器列表,作为按 Sequences try的os.pathsep分隔的浏览器列表。当列表部分的值包含字符串%s
时,它将被解释为原义的浏览器命令行,并使用参数 URL 代替%s
;如果该部分不包含%s
,则仅将其解释为要启动的浏览器的名称。 [1]
对于非 Unix 平台,或者在 Unix 上提供远程浏览器时,控制过程将不会 await 用户完成浏览器的操作,而是允许远程浏览器在显示屏上维护其自己的窗口。如果 Unix 上没有远程浏览器,则控制过程将启动新的浏览器并 await。
脚本 webbrowser 可用作模块的命令行界面。它接受 URL 作为参数。它接受以下可选参数:-n
尽可能在新的浏览器窗口中打开 URL; -t
在新的浏览器页面(“标签”)中打开 URL。这些选项自然是互斥的。用法示例:
python -m webbrowser -t "http://www.python.org"
定义了以下异常:
- exception
webbrowser.
Error
- 当浏览器控件发生错误时引发异常。
定义了以下Function:
webbrowser.
open
(* url , new = 0 , autoraise = True *)- 使用默认浏览器显示* url 。如果 new 为 0,则在可能的情况下在同一浏览器窗口中打开 url 。如果 new 为 1,则如果可能,将打开一个新的浏览器窗口。如果 new 为 2,则如果可能,将打开一个新的浏览器页面(“选项卡”)。如果 autoraise *为
True
,则将窗口升起(请注意,在许多窗口 Management 器下,无论此变量的设置如何,都会发生此情况)。
- 使用默认浏览器显示* url 。如果 new 为 0,则在可能的情况下在同一浏览器窗口中打开 url 。如果 new 为 1,则如果可能,将打开一个新的浏览器窗口。如果 new 为 2,则如果可能,将打开一个新的浏览器页面(“选项卡”)。如果 autoraise *为
请注意,在某些平台上,try使用此Function打开文件名可能会起作用并启动 os 的关联程序。但是,既不支持也不是可移植的。
在版本 2.5 中更改:新现在可以是 2.
webbrowser.
open_new
(* url *)- 如果可能,请在默认浏览器的新窗口中打开* url ,否则,请在唯一的浏览器窗口中打开 url *。
webbrowser.
open_new_tab
(* url *)- 如果可能,请在默认浏览器的新页面(“标签”)中打开* url *,否则等于open_new()。
2.5 版的新Function。
webbrowser.
get
([* name *])- 返回浏览器类型* name 的控制器对象。如果 name *为空,则返回适合于调用者环境的默认浏览器的控制器。
webbrowser.
register
(* name , constructor * [,* instance *])- 注册浏览器类型* name 。注册浏览器类型后,get()函数可以返回该浏览器类型的控制器。如果未提供 instance 或
None
,则将在不需要参数的情况下调用 constructor 来创建实例。如果提供了 instance ,则 constructor *将永远不会被调用,并且可能是None
。
- 注册浏览器类型* name 。注册浏览器类型后,get()函数可以返回该浏览器类型的控制器。如果未提供 instance 或
仅当您计划设置 BROWSER
变量或使用与您语句的处理程序名称匹配的非空参数调用get()时,此入口点才有用。
sched 义了多种浏览器类型。该表提供了可以传递给get()函数的类型名称以及控制器类的相应实例化,所有这些都在此模块中定义。
Type Name | Class Name | Notes |
---|---|---|
'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') |
(4) |
'chrome' |
Chrome('chrome') |
(4) |
'chromium' |
Chromium('chromium') |
(4) |
'chromium-browser' |
Chromium('chromium-browser') |
(4) |
Notes:
“ Konqueror”是用于 Unix 的 KDE 桌面环境的文件 Management 器,仅在运行 KDE 时才有意义。可靠地检测 KDE 的某种方法将是不错的。
KDEDIR
变量还不够。还要注意,即使在 KDE 2 中使用 konqueror 命令时,也会使用名称“ kfm” —该实现选择了运行 Konqueror 的最佳策略。仅在 Windows 平台上。
仅在 Mac OS X 平台上。
在 2.7.5 版中添加了对 Chrome/Chromium 的支持。
以下是一些简单的示例:
url = 'http://www.python.org/'
# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(url + 'doc/')
# Open URL in new window, raising the window if possible.
webbrowser.open_new(url)
20.1.1. 浏览器控制器对象
浏览器控制器提供了与三种模块级便捷Function并行的方法:
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()。
2.5 版的新Function。
Footnotes
- [1]
- 将在
PATH
环境变量给定的目录中搜索此处没有完整路径的可执行文件。
- 将在