python 获取浏览器安装位置,并使用指定浏览器打开指定网页

说明

本程序基于Windows注册表实现了浏览器安装位置的查找功能和使用指定浏览器打开网页的功能。
使用 get_browser_path 函数可获取对应名称的浏览器的安装位置,使用 open_url 函数可直接使用指定的浏览器打开对应页面,
可同时指定多个浏览器,优先级从前到后。当前支持 ‘IE’,‘chrome’,‘edge’,‘firefox’,‘360’ 等浏览器,如果有其他浏览器需要支持,只需在 _browser_regs 中补充对应注册表信息即可。

代码

""" 使用 get_browser_path 函数可获取对应名称的浏览器的安装位置,使用 open_url 函数可直接使用指定的浏览器打开对应页面, 可同时指定多个浏览器,优先级从前到后。当前支持 'IE','chrome','edge','firefox','360' 等浏览器,如果有其他浏览器需要支持,只需在 _browser_regs 中补充对应注册表信息即可 """
import webbrowser
import winreg

# 浏览器注册表信息
_browser_regs = { 
    'IE': r"SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\DefaultIcon",
    'chrome': r"SOFTWARE\Clients\StartMenuInternet\Google Chrome\DefaultIcon",
    'edge': r"SOFTWARE\Clients\StartMenuInternet\Microsoft Edge\DefaultIcon",
    'firefox': r"SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\DefaultIcon",
    '360': r"SOFTWARE\Clients\StartMenuInternet\360Chrome\DefaultIcon",
}


def get_browser_path(browser):
    """ 获取浏览器的安装路径 :param browser: 浏览器名称 """
    try:
        key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, _browser_regs[browser])
    except FileNotFoundError:
        return None
    value, _type = winreg.QueryValueEx(key, "")
    return value.split(',')[0]


def open_url(url, browsers=('IE',)):
    """ 使用指定的浏览器打开url对应的网页地址 :param url: 网页地址 :param browsers: 浏览器名称列表 :return: 是否打开成功 """
    for browser in browsers:
        path = get_browser_path(browser)
        if path:
        	print(f'open with browser: `{ browser}`, path: `{ path}`')
            webbrowser.register(browser, None, webbrowser.BackgroundBrowser(path))
            webbrowser.get(browser).open(url)
            return True
    return False


if __name__ == '__main__':
    print("IE:", get_browser_path('IE'))
    print("谷歌:", get_browser_path('chrome'))
    print("edge: ", get_browser_path('edge'))
    print("火狐:", get_browser_path('firefox'))
    print("360: ", get_browser_path('360'))

    if open_url('www.baidu.com', browsers=('chrome', 'firefox')):
        print('打开成功')
    else:
        print('打开失败,请安装 Chrome 或 Firefox 浏览器后重试')

运行结果

IE: C:\Program Files\Internet Explorer\iexplore.exe
谷歌: C:\Program Files\Google\Chrome\Application\chrome.exe
edge:  C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
火狐: None
360:  None
open with browser: `chrome`, path: `C:\Program Files\Google\Chrome\Application\chrome.exe`
打开成功
    原文作者:浅醉樱花雨
    原文地址: https://blog.csdn.net/u013314786/article/details/122497226
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞