webbrowser– 方便的Web浏览器控制器

源代码: Lib / webbrowser.py


webbrowser模块提供了一个高级接口,允许显示Web-基于用户的文档。在大多数情况下,只需从这个模块中调用open()函数就可以做正确的事情.

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

如果环境变量BROWSER存在,则将其解释为os.pathsep – 分隔在platformdefaults之前尝试的浏览器列表。当列表部分的值包含字符串%s时,它将被解释为一个文字浏览器命令行,用于%s的参数URLsubstituted;如果该部分不包含%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,如果可能,将打开一个新的浏览器窗口。如果new为2,则会打开新的浏览器页面(“tab”)。如果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, *, preferred=False)

注册浏览器输入name。一旦浏览器类型被注册,get()function可以返回该浏览器类型的控制器。如果没有提供instance,或者None, constructor将在没有参数的情况下被调用以在需要时创建实例。如果提供instance,则constructor永远不会被调用,可能是None.

设置preferred到True使这个浏览器成为首选结果论坛get()无争话地打电话。否则,如果您打算设置BROWSER变量或调用get()并使用与处理程序名称相匹配的非空参数,则此入口点仅用于解释.

更改版本3.7:preferred添加了关键字参数.

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

Type Name Class Name 注
"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")  

注:

  1. “Konqueror”是Unix的KDE桌面环境的文件管理器,只有在KDE运行时才有意义。一些可靠地检测KDE的方法会很好;KDEDIR变量是不够的。另请注意,即使在使用带有KDE2的 konqueror 命令时,也会使用名称“kfm” – 该实现选择运行Konqueror的最佳策略.
  2. 仅适用于Windows平台.
  3. 仅适用于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)

浏览器控制器对象

浏览器控制器提供这些方法,它们与三个模块级别的便捷功能并行:

controller.open(url, new=0, autoraise=True)

使用此控制器处理的浏览器显示url。如果new为1,则尽可能打开一个新的浏览器窗口。如果new为2,如果可能的话打开一个新的浏览器页面(“标签”)

controller.open_new(url)

打开url在这个控制器处理的浏览器的新窗口中,ifpossible,否则,在唯一的浏览器窗口中打开url。别名open_new().

controller.open_new_tab(url)

在此控制器处理的浏览器的新页面(“标签”)中打开url,如果可能,否则相当于open_new().

脚注

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

评论被关闭。