webbrowser
--- 方便的 Web 瀏覽器控制工具?
webbrowser
模塊提供了一個(gè)高層級(jí)接口,允許向用戶顯示基于 Web 的文檔。 在大多數(shù)情況下,只需調(diào)用此模塊的 open()
函數(shù)就可以了。
在 Unix 下,圖形瀏覽器在 X11 下是首選,但如果圖形瀏覽器不可用或 X11 顯示不可用,則將使用文本模式瀏覽器。 如果使用文本模式瀏覽器,則調(diào)用進(jìn)程將阻塞,直到用戶退出瀏覽器。
如果存在環(huán)境變量 BROWSER
,則將其解釋為 os.pathsep
分隔的瀏覽器列表,以便在平臺(tái)默認(rèn)值之前嘗試。 當(dāng)列表部分的值包含字符串 %s
時(shí),它被解釋為一個(gè)文字瀏覽器命令行,用于替換 %s
的參數(shù) URL ;如果該部分不包含 %s
,則它只被解釋為要啟動(dòng)的瀏覽器的名稱。 1
對(duì)于非 Unix 平臺(tái),或者當(dāng) Unix 上有遠(yuǎn)程瀏覽器時(shí),控制過(guò)程不會(huì)等待用戶完成瀏覽器,而是允許遠(yuǎn)程瀏覽器在顯示界面上維護(hù)自己的窗口。 如果 Unix 上沒(méi)有遠(yuǎn)程瀏覽器,控制進(jìn)程將啟動(dòng)一個(gè)新的瀏覽器并等待。
腳本 webbrowser 可以用作模塊的命令行界面。它接受一個(gè) URL 作為參數(shù)。還接受以下可選參數(shù):-n
如果可能,在新的瀏覽器窗口中打開(kāi) URL ; -t
在新的瀏覽器頁(yè)面(“標(biāo)簽”)中打開(kāi) URL。這些選擇當(dāng)然是相互排斥的。用法示例:
python -m webbrowser -t "https://www.python.org"
定義了以下異常:
- exception webbrowser.Error?
發(fā)生瀏覽器控件錯(cuò)誤時(shí)引發(fā)異常。
定義了以下函數(shù):
- webbrowser.open(url, new=0, autoraise=True)?
使用默認(rèn)瀏覽器顯示 url。 如果 new 為 0,則盡可能在同一瀏覽器窗口中打開(kāi) url。 如果 new 為 1,則盡可能打開(kāi)新的瀏覽器窗口。 如果 new 為 2,則盡可能打開(kāi)新的瀏覽器頁(yè)面(“標(biāo)簽”)。 如果 autoraise 為 “True”,則會(huì)盡可能置前窗口(請(qǐng)注意,在許多窗口管理器下,無(wú)論此變量的設(shè)置如何,都會(huì)置前窗口)。
請(qǐng)注意,在某些平臺(tái)上,嘗試使用此函數(shù)打開(kāi)文件名,可能會(huì)起作用并啟動(dòng)操作系統(tǒng)的關(guān)聯(lián)程序。 但是,這種方式不被支持也不可移植。
使用
url
參數(shù)會(huì)引發(fā) auditing eventwebbrowser.open
。
- webbrowser.open_new(url)?
如果可能,在默認(rèn)瀏覽器的新窗口中打開(kāi) url,否則,在唯一的瀏覽器窗口中打開(kāi) url。
- webbrowser.open_new_tab(url)?
如果可能,在默認(rèn)瀏覽器的新頁(yè)面(“標(biāo)簽”)中打開(kāi) url,否則等效于
open_new()
。
- webbrowser.get(using=None)?
返回瀏覽器類(lèi)型為 using 指定的控制器對(duì)象。 如果 using 為
None
,則返回適用于調(diào)用者環(huán)境的默認(rèn)瀏覽器的控制器。
- webbrowser.register(name, constructor, instance=None, *, preferred=False)?
注冊(cè) name 瀏覽器類(lèi)型。 注冊(cè)瀏覽器類(lèi)型后,
get()
函數(shù)可以返回該瀏覽器類(lèi)型的控制器。 如果沒(méi)有提供 instance,或者為None
,constructor 將在沒(méi)有參數(shù)的情況下被調(diào)用,以在需要時(shí)創(chuàng)建實(shí)例。 如果提供了 instance,則永遠(yuǎn)不會(huì)調(diào)用 constructor,并且可能是None
。將 preferred 設(shè)置為
True
使得這個(gè)瀏覽器成為get()
不帶參數(shù)調(diào)用的首選結(jié)果。 否則,只有在您計(jì)劃設(shè)置BROWSER
變量,或使用與您聲明的處理程序的名稱相匹配的非空參數(shù)調(diào)用get()
時(shí),此入口點(diǎn)才有用。在 3.7 版更改: 添加了僅關(guān)鍵字參數(shù) preferred。
預(yù)定義了許多瀏覽器類(lèi)型。 此表給出了可以傳遞給 get()
函數(shù)的類(lèi)型名稱以及控制器類(lèi)的相應(yīng)實(shí)例化,這些都在此模塊中定義。
類(lèi)型名 |
類(lèi)名 |
備注 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
注釋:
“Konqueror” 是 Unix 的 KDE 桌面環(huán)境的文件管理器,只有在 KDE 運(yùn)行時(shí)才有意義。 一些可靠地檢測(cè) KDE 的方法會(huì)很好;僅檢查
KDEDIR
變量是不夠的。 另請(qǐng)注意,KDE 2的 konqueror 命令,會(huì)使用名稱 “kfm”---此實(shí)現(xiàn)選擇運(yùn)行的 Konqueror 的最佳策略。僅限 Windows 平臺(tái)。
Only on macOS platform.
3.3 新版功能: 添加了對(duì) Chrome/Chromium 的支持。
Deprecated since version 3.11, will be removed in version 3.13: MacOSX
is deprecated, use MacOSXOSAScript
instead.
以下是一些簡(jiǎn)單的例子:
url = 'https://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)
瀏覽器控制器對(duì)象?
瀏覽器控制器提供三個(gè)與模塊級(jí)便捷函數(shù)相同的方法:
- webbrowser.name?
System-dependent name for the browser.
- controller.open(url, new=0, autoraise=True)?
使用此控制器處理的瀏覽器顯示 url。 如果 new 為 1,則盡可能打開(kāi)新的瀏覽器窗口。 如果 new 為 2,則盡可能打開(kāi)新的瀏覽器頁(yè)面(“標(biāo)簽”)。
- controller.open_new(url)?
如果可能,在此控制器處理的瀏覽器的新窗口中打開(kāi) url ,否則,在唯一的瀏覽器窗口中打開(kāi) url 。 別名
open_new()
。
- controller.open_new_tab(url)?
如果可能,在此控制器處理的瀏覽器的新頁(yè)面(“標(biāo)簽”)中打開(kāi) url,否則等效于
open_new()
。
備注
- 1
這里命名的不帶完整路徑的可執(zhí)行文件將在
PATH
環(huán)境變量給出的目錄中搜索。