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