webbrowser
— 便捷的 Web 瀏覽器控制器¶
原始碼: Lib/webbrowser.py
webbrowser
模組提供了一個高階介面,允許向用戶顯示基於 Web 的文件。 在大多數情況下,只需呼叫此模組中的 open()
函式即可實現正確的操作。
在 Unix 下,首選 X11 下的圖形瀏覽器,但如果沒有圖形瀏覽器或沒有 X11 顯示,則將使用文字模式瀏覽器。 如果使用文字模式瀏覽器,則呼叫程序將阻塞,直到使用者退出瀏覽器。
如果環境變數 BROWSER
存在,則將其解釋為嘗試在平臺預設設定之前嘗試的瀏覽器列表,該列表以 os.pathsep
分隔。 當列表部分的某個值包含字串 %s
時,則將其解釋為文字瀏覽器命令列,其中引數 URL 替換為 %s
;如果該部分不包含 %s
,則將其簡單地解釋為要啟動的瀏覽器的名稱。 [1]
對於非 Unix 平臺,或者當 Unix 上有遠端瀏覽器可用時,控制程序不會等待使用者完成瀏覽器的操作,而是允許遠端瀏覽器在其自己的顯示器上維護視窗。 如果 Unix 上沒有遠端瀏覽器可用,則控制程序將啟動一個新瀏覽器並等待。
在 iOS 上,BROWSER
環境變數以及任何控制自動提升、瀏覽器首選項和新標籤頁/視窗建立的引數都將被忽略。 網頁將始終在使用者首選的瀏覽器中開啟,在新標籤頁中開啟,並且將瀏覽器帶到前臺。 在 iOS 上使用 webbrowser
模組需要 ctypes
模組。 如果 ctypes
不可用,則對 open()
的呼叫將失敗。
指令碼 webbrowser 可以用作該模組的命令列介面。 它接受一個 URL 作為引數。 它接受以下可選引數
-n
/--new-window
如果可能,則在新瀏覽器視窗中開啟 URL。-t
/--new-tab
在新的瀏覽器頁面(“標籤頁”)中開啟 URL。
這些選項自然是互斥的。 用法示例
python -m webbrowser -t "https://python.club.tw"
可用性:不是 WASI,也不是 Android。
定義了以下異常
- exception webbrowser.Error¶
當發生瀏覽器控制錯誤時引發的異常。
定義了以下函式
- webbrowser.open(url, new=0, autoraise=True)¶
使用預設瀏覽器顯示 url。 如果 new 為 0,則儘可能在同一瀏覽器視窗中開啟 url。 如果 new 為 1,則儘可能開啟一個新的瀏覽器視窗。 如果 new 為 2,則儘可能開啟新的瀏覽器頁面(“標籤頁”)。 如果 autoraise 為
True
,則儘可能提升視窗(請注意,在許多視窗管理器下,無論此變數的設定如何,都會發生這種情況)。如果瀏覽器成功啟動,則返回
True
,否則返回False
。請注意,在某些平臺上,嘗試使用此函式開啟檔名可能會起作用並啟動作業系統的相關程式。 但是,這既不支援也不可移植。
使用引數
url
引發 審計事件webbrowser.open
。
- webbrowser.open_new(url)¶
如果可能,在預設瀏覽器的新視窗中開啟 url,否則,在唯一的瀏覽器視窗中開啟 url。
如果瀏覽器成功啟動,則返回
True
,否則返回False
。
- webbrowser.open_new_tab(url)¶
如果可能,在預設瀏覽器的新頁面(“標籤頁”)中開啟 url,否則等效於
open_new()
。如果瀏覽器成功啟動,則返回
True
,否則返回False
。
- webbrowser.get(using=None)¶
返回瀏覽器型別 using 的控制器物件。 如果 using 為
None
,則返回適用於呼叫者環境的預設瀏覽器的控制器。
- webbrowser.register(name, constructor, instance=None, *, preferred=False)¶
註冊瀏覽器型別 name。 註冊瀏覽器型別後,
get()
函式可以返回該瀏覽器型別的控制器。 如果未提供 instance,或為None
,則在需要時將呼叫不帶引數的 constructor 來建立例項。 如果提供了 instance,則永遠不會呼叫 constructor,並且 constructor 可能為None
。將 preferred 設定為
True
會使此瀏覽器成為沒有引數的get()
呼叫的首選結果。 否則,此入口點僅當您計劃設定BROWSER
變數或使用與您宣告的處理程式的名稱匹配的非空引數呼叫get()
時才有用。在 3.7 版本中更改:添加了僅關鍵字引數 preferred。
預定義了許多瀏覽器型別。 此表提供了可以傳遞給 get()
函式的型別名稱,以及控制器類的相應例項化,所有這些都在此模組中定義。
型別名稱 |
類名稱 |
備註 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(4) |
備註
“Konqueror” 是用於 Unix 的 KDE 桌面環境的檔案管理器,只有在 KDE 執行時才有意義使用。如果能可靠地檢測 KDE 就好了;
KDEDIR
變數是不夠的。還要注意,即使使用帶有 KDE 2 的 konqueror 命令,也會使用 “kfm” 這個名稱 —— 實現會選擇執行 Konqueror 的最佳策略。僅在 Windows 平臺上。
僅在 macOS 上。
僅在 iOS 上。
3.2 版本新增: 添加了一個新的 MacOSXOSAScript
類,並在 Mac 上代替之前的 MacOSX
類使用。這增加了對開啟當前未設定為作業系統預設瀏覽器的支援。
3.3 版本新增: 增加了對 Chrome/Chromium 的支援。
3.12 版本更改: 移除了對幾個過時瀏覽器的支援。移除的瀏覽器包括 Grail、Mosaic、Netscape、Galeon、Skipstone、Iceape 以及 Firefox 35 及以下版本。
3.13 版本更改: 增加了對 iOS 的支援。
這裡有一些簡單的示例
url = 'https://docs.python.club.tw/'
# 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.name¶
瀏覽器系統相關的名稱。
- 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()
。
腳註