13.8. webbrowser — 显示网页
目的: 使用 webbrowser 模块将网页呈现给用户。
webbrowser
模块中包含了在交互式浏览器中用于打开 URL 的一系列函数。该模块包含了可用浏览器的注册列表,避免系统上有多个可选的浏览器。同时它也可以通过指定浏览器的环境变量 BROWSER
来运行。
以下是一个简单的例子:
为了在浏览器中打开一个页面,我们会用到 open()
函数。
webbrowser_open.py
import webbrowser
webbrowser.open(
'https://docs.python.org/3/library/webbrowser.html'
)
以上 URL 在浏览器窗口中打开,同时该窗口被提升到窗口栈中的最上方。模块文档说明,如果可能的话,现存的窗口将被重用,但具体情况应取决于浏览器的配置。在 Mac OS X 上使用 Firefox 浏览器时,以上的代码将创建一个新的窗口。
窗口 vs. 标签页
如果你需要的是新的窗口,请使用 open_new()
。
webbrowser_open_new.py
import webbrowser
webbrowser.open_new(
'https://docs.python.org/3/library/webbrowser.html'
)
如果你需要的是一个标签页,那么请使用 open_new_tab()
。
使用特定的浏览器
如果因为某些原因你需要使用特定的浏览器,你可以用 get()
函数来获取注册浏览器的控制器。浏览器控制器同样拥有 open()
, open_new()
和 open_new_tab()
方法。下面的例子强制使用 lynx 浏览器:
webbrowser_get.py
import webbrowser
b = webbrowser.get('lynx')
b.open('https://docs.python.org/3/library/webbrowser.html')
关于可用的浏览器类型列表请参考模块文档。
BROWSER
变量
用户可以尝试通过将环境变量 BROWSER
设定为浏览器名称或命令从应用外部来控制模块行为 。该变量的值应为一系列以 os.pathsep
隔开的浏览器名称。如果名称包含 %s
,那么该名称将被当做一个命令被直接执行,其中 %s
被替换为 URL 。否则,名称被传递给 get()
函数,从注册列表中获取一个控制器对象。
例如,假定以下命令是可用的,那么它将在 lynx 中打开一个网页,不管是否还注册有其他浏览器。
$ BROWSER=lynx python3 webbrowser_open.py
如果 BROWSER
变量指定的命令没一个能用的,那么 webbrowser
退回为采用默认行为。
交互命令行
与使用 Python 程序一样, webbrowser
模块的所有功能都可以通过命令行执行。
$ python3 -m webbrowser
Usage: .../lib/python3.6/webbrowser.py [-n | -t] url
-n: open new window
-t: open new tab
请参考
- 标准库 webbrowser 模块文档
- What the What? -- 运行你的 Python 程序,然后启动 Google 搜索以查看生成的任何异常消息。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。