Chrome 调试协议:阻止主机名(取消网络请求)

Chrome Debugging Protocol: block hostnames (cancel network request)

通过 Chrome 调试协议(或者可能是命令行标志),有没有办法在 Chrome 无头实例中阻止某些主机名(即取消对它们的任何网络请求)使用远程代理?

我想通过本地 hosts 文件这样做是可行的,但如果使用远程代理则不会有任何影响。

我不知道有什么方法可以使用远程调试协议来做到这一点。

阻止对某些主机名(或基于任何其他标准!)的 Web 请求的典型方法是安装使用 chrome.webRequest API 拦截和取消请求的扩展程序。例如,这就是 ad-blocking 扩展程序的工作方式。

我认为使用 Chrome 调试协议应该可以做到这一点。 Web 检查器中有一个实验性功能,它会显示一个 Request blocking 选项卡。在这里,您可以根据特定的匹配条件阻止网络请求。

Debugging Protocol 在 Network 域下有一个 addBlockedURL 方法,它以 URL 作为参数。这是一个实验性的 API,但我认为您目前可以执行此操作的方法是对请求 URL 进行正则表达式匹配,并将每个匹配的 URL 传递给该方法。我怀疑新的网络检查器功能是按照这些思路实现的。