20.1。 webbrowser - 方便的Web浏览器控制器

源代码: Lib / webbrowser.py

webbrowser模块提供了一个高级接口,允许向用户显示基于Web的文档。在大多数情况下,只需从该模块调用open()函数即可。

在Unix下,图形浏览器在X11下是首选,但如果图形浏览器不可用或X11显示不可用,则会使用文本模式浏览器。如果使用文本模式浏览器,调用进程将阻止,直到用户退出浏览器。

如果环境变量 BROWSER存在,则解释为覆盖浏览器的平台默认列表,作为os.pathsep分离的浏览器列表按顺序尝试。当列表部分的值包含字符串%s时,它被解释为文本浏览器命令行,用于替换%s的参数URL;如果该部分不包含%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,则如果可能,将打开新的浏览器页面(“选项卡”)。如果autoraiseTrue,则窗口可能会被提升(注意,在许多窗口管理器下,这将发生,而不管该变量的设置)。

请注意,在某些平台上,尝试使用此功能打开文件名可能会起作用并启动操作系统的关联程序。However, this is neither supported nor portable.

在版本2.5中更改: new现在可以是2。

webbrowser.open_new(url)

如果可能,在默认浏览器的新窗口中打开url,否则在唯一的浏览器窗口中打开url

webbrowser.open_new_tab(url)

如果可能,在默认浏览器的新页面(“选项卡”)中打开url,否则相当于open_new()

New in version 2.5.

webbrowser.get([name])

返回浏览器类型名称的控制器对象。如果名称为空,则返回适合于呼叫者环境的默认浏览器的控制器。

webbrowser.register(name, constructor[, instance])

注册浏览器类型名称注册浏览器类型后,get()函数可以返回该浏览器类型的控制器。如果没有提供实例,或者是,则在没有参数的情况下,将会调用构造函数,以在需要时创建一个实例。如果提供了instance,则不会调用constructor,可能None

此入口点仅在您计划使用非空参数匹配 BROWSER变量或调用get()时有用,你声明的处理程序

许多浏览器类型是预定义的。此表给出了可以传递给get()函数的类型名称以及控制器类的相应实例化,这些都在本模块中定义。

Type NameClass NameNotes
'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)

Notes:

  1. “Konqueror” is the file manager for the KDE desktop environment for Unix, and only makes sense to use if KDE is running. Some way of reliably detecting KDE would be nice; the KDEDIR variable is not sufficient. Note also that the name “kfm” is used even when using the konqueror command with KDE 2 — the implementation selects the best strategy for running Konqueror.
  2. Only on Windows platforms.
  3. Only on Mac OS X platform.

Here are some simple examples:

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. 浏览器控制器对象

浏览器控制器提供了这些方法,其中并行三个模块级的便利功能:

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()

New in version 2.5.

脚注

[1]在这里没有完整路径的可执行文件将在 PATH环境变量中给出的目录中进行搜索。