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.openurl, new=0, autoraise=True

使用默认浏览器显示url如果new为0,则url在可能的情况下在同一浏览器窗口中打开。如果new为1,如果可能,将打开一个新的浏览器窗口。如果new为2,则会打开新的浏览器页面(“tab”)。如果autoraiseTrue,那么窗口会被提升(请注意,在许多窗口管理器下,无论这个变量如何都会出现这种情况).

请注意,在某些平台上,尝试使用此功能打开文件名,可以工作并启动操作系统的相关程序。但是,既不支持也不便携.

webbrowser.open_new(url)

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

webbrowser.open_new_taburl)

在新的页面(“标签”)中打开url默认浏览器,如果可能的话,等同于open_new().

webbrowser.getusing=None

返回浏览器类型using控制器对象。如果usingNone,则返回一个适合于调用者环境的默认浏览器的控制器.

webbrowser.register (name, constructor, instance=None, *, preferred=False)

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

设置preferredTrue使这个浏览器成为首选结果论坛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.openurl, new=0, autoraise=True

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

controller.open_newurl)

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

controller.open_new_taburl

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

脚注

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

评论被关闭。