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

如何在MATLAB中从谷歌Chrome浏览器获取动态变化的URL

在MATLAB中提取Chrome浏览器内谷歌地图的动态URL

方法1:通过Windows COM对象直接访问Chrome标签页

适用于Windows系统,利用MATLAB对COM对象的支持,直接遍历Chrome窗口与标签页,筛选谷歌地图的URL。

实现代码

function currentMapURL = getChromeGoogleMapsURL()
    currentMapURL = '';
    try
        % 创建Shell.Application COM对象
        shell = actxserver('Shell.Application');
        % 遍历所有打开的窗口
        windows = shell.Windows;
        for i = 1:windows.Count
            win = windows.Item(i);
            % 验证是否为Chrome浏览器窗口
            if contains(win.FullName, 'chrome.exe', 'IgnoreCase', true)
                % 检查当前标签页URL是否属于谷歌地图
                if contains(win.LocationURL, {'maps.google.com', 'google.com/maps'}, 'IgnoreCase', true)
                    currentMapURL = win.LocationURL;
                    % 解码URL(Chrome返回的URL可能经过编码)
                    currentMapURL = char(urldecode(currentMapURL));
                    break; % 找到首个匹配标签页后停止遍历
                end
            end
        end
        % 释放COM对象
        delete(shell);
    catch ME
        warning('提取URL时出错: %s', ME.message);
    end
end

用户触发式使用

可以将函数绑定到UI按钮,实现点击提取:

% 创建触发按钮界面
fig = uifigure('Title', '提取谷歌地图URL');
btn = uibutton(fig, 'Text', '提取当前地图URL', ...
    'Position', [100 100 200 30], ...
    'ButtonPushedFcn', @(src,event) extractAndDisplayURL());

function extractAndDisplayURL()
    url = getChromeGoogleMapsURL();
    if ~isempty(url)
        uialert(fig, ['当前谷歌地图URL: ', url], '提取成功');
        % 可根据需求将URL存入变量或写入文件
    else
        uialert(fig, '未找到打开的谷歌地图标签页', '提示');
    end
end

方法2:通过PowerShell脚本配合MATLAB调用

若COM对象方法存在兼容性问题,可借助PowerShell获取Chrome标签信息,再在MATLAB中解析结果。

实现步骤

  1. 编写PowerShell脚本(保存为GetChromeMapsURL.ps1):
$chromeWindows = Get-Process chrome | Where-Object { $_.MainWindowTitle -ne "" }
foreach ($window in $chromeWindows) {
    $shell = New-Object -ComObject Shell.Application
    $tabs = $shell.Windows() | Where-Object { $_.FullName -like "*chrome.exe" -and $_.HWND -eq $window.MainWindowHandle }
    foreach ($tab in $tabs) {
        if ($tab.LocationURL -match "maps\.google\.com|google\.com/maps") {
            Write-Output $tab.LocationURL
            exit
        }
    }
}
  1. 在MATLAB中调用脚本并解析:
function currentMapURL = getChromeMapsURLViaPS()
    currentMapURL = '';
    % 调用PowerShell脚本
    [status, output] = system('powershell -ExecutionPolicy Bypass -File "GetChromeMapsURL.ps1"');
    if status == 0 && ~isempty(output)
        currentMapURL = char(urldecode(strtrim(output)));
    else
        warning('未找到谷歌地图标签页或脚本执行失败');
    end
end

注意事项

  • 确保Chrome处于运行状态,且有打开的谷歌地图标签页。
  • 使用PowerShell方法时,需保证MATLAB具备执行脚本的权限,必要时调整系统执行策略。

内容的提问来源于stack exchange,提问作者Zac Young

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:36:27