有没有办法在 Python 中获取默认浏览器?

Is there a way to get the default browser in Python?

我想要一种在 Python 中找到默认浏览器的方法。我看过 https://docs.python.org/3.8/library/webbrowser.html 并且可能有一种方法可以转换我不知道的网络浏览器实例。

有人知道我该怎么做吗?

此外,我正在使用 Windows - 它不需要为 Mac 或 Ubuntu 工作。

编辑:

我已经尝试过 this website,它给我一个错误提示 'the file path does not exist'。

此外,我不想在默认浏览器中打开选项卡,我只想要名称。

编辑#2:

以下代码有效,但 returns Internet Explorer 而不是我的实际默认值 Chrome。

from winreg import*
with OpenKey(HKEY_CLASSES_ROOT,r"http\shell\open\command") as key:
    cmd = QueryValue(key, None)

我想通了。我很确定这只适用于 Windows,但这是代码:

from winreg import *
with OpenKey(HKEY_CURRENT_USER, r"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice") as key:
    browser = QueryValueEx(key, 'Progid')[0]

它将 return ChromeHTML 用于 Chrome,FirefoxURL 用于 Firefox,IE.HTTP 用于 Internet Explorer。

你可以试试这个

import webbrowser

default_browser = webbrowser.get()

default_browser_name = default_browser.name
default_browser_basename = default_browser.basename

正如文档所说

webbrowser.get([name])

Return a controller object for the browser type name. If name is empty, return a controller for a default browser appropriate to the caller’s environment.