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