You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python获取默认浏览器名称及前10条URL历史记录

Python获取默认浏览器名称及历史记录

1. 获取系统默认浏览器名称

不同操作系统的实现逻辑不同,以下是分平台的实现方案:

Windows系统

通过读取注册表中HTTP协议关联的程序ID,映射到对应浏览器名称:

import winreg

def get_default_browser_windows():
    try:
        key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice")
        progid, _ = winreg.QueryValueEx(key, "Progid")
        winreg.CloseKey(key)
        
        browser_map = {
            "ChromeHTML": "Google Chrome",
            "FirefoxURL": "Mozilla Firefox",
            "IE.HTTP": "Internet Explorer",
            "MSEdgeHTM": "Microsoft Edge (Chromium)"
        }
        return browser_map.get(progid, "未知浏览器")
    except Exception as e:
        return f"读取失败: {str(e)}"

macOS系统

通过读取系统偏好设置中的浏览器关联信息,提取Bundle ID并映射名称:

import subprocess
import plistlib

def get_default_browser_macos():
    try:
        result = subprocess.run(
            ["defaults", "read", "com.apple.LaunchServices/com.apple.launchservices.secure", "LSHandlers"],
            capture_output=True, text=True
        )
        handlers = plistlib.loads(result.stdout.encode())
        for handler in handlers:
            if handler.get("LSHandlerURLScheme") == "http":
                bundle_id = handler["LSHandlerRoleAll"]
                bundle_map = {
                    "com.google.chrome": "Google Chrome",
                    "org.mozilla.firefox": "Mozilla Firefox",
                    "com.apple.safari": "Safari",
                    "com.microsoft.edgemac": "Microsoft Edge"
                }
                return bundle_map.get(bundle_id, "未知浏览器")
        return "未知浏览器"
    except Exception as e:
        return f"读取失败: {str(e)}"

Linux系统

通过xdg-settings命令获取默认浏览器的桌面配置名,再映射为可读名称:

import subprocess

def get_default_browser_linux():
    try:
        result = subprocess.run(
            ["xdg-settings", "get", "default-web-browser"],
            capture_output=True, text=True
        )
        browser_id = result.stdout.strip().replace(".desktop", "")
        desktop_map = {
            "google-chrome": "Google Chrome",
            "firefox": "Mozilla Firefox",
            "microsoft-edge": "Microsoft Edge",
            "chromium-browser": "Chromium"
        }
        return desktop_map.get(browser_id, browser_id)
    except Exception as e:
        return f"读取失败: {str(e)}"

跨平台整合调用

import sys

def get_default_browser():
    if sys.platform.startswith('win'):
        return get_default_browser_windows()
    elif sys.platform.startswith('darwin'):
        return get_default_browser_macos()
    elif sys.platform.startswith('linux'):
        return get_default_browser_linux()
    else:
        return "不支持的操作系统"

# 使用示例
print(f"当前默认浏览器: {get_default_browser()}")

2. 获取默认浏览器的前10条URL历史记录

使用browser_history库可以自动识别系统默认浏览器并提取历史记录,先安装依赖:

pip install browser-history

然后运行以下代码获取前10条历史记录:

from browser_history import get_history

outputs = get_history()

# histories 是包含 (datetime.datetime, url) 元组的列表
top_10_history = outputs.histories[:10]

for entry in top_10_history:
    timestamp, url = entry
    print(f"[{timestamp.strftime('%Y-%m-%d %H:%M:%S')}] {url}")

print(f"获取到的历史记录条数: {len(top_10_history)}")

注意:部分浏览器(如Chrome)需要关闭后才能正常读取历史数据库,否则可能出现读取失败的情况。

内容的提问来源于stack exchange,提问作者Raja Muhamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:31:02