Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?

Posted

技术标签:

【中文标题】Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?【英文标题】:Chrome dev tools: any way to exclude requests whose URL matches a regex?Chrome 开发工具:有什么方法可以排除 URL 与正则表达式匹配的请求? 【发布时间】:2016-11-26 06:14:53 【问题描述】:

很遗憾,在 Chrome 的最新版本中,否定网络过滤器不再起作用。我使用这个过滤器来排除每个包含特定字符串的 http 调用。我在 Chrome 开发工具论坛中询问了一个解决方案,但目前没有人回答。

所以我想知道是否有办法使用正则表达式语法来解决这个问题(并排除例如每个包含字符串“loadMess”的调用)。

【问题讨论】:

【参考方案1】:

更新(2018 年):

这是对我旧答案的更新,以澄清这两个错误已经修复了一段时间

    否定或排除过滤现在按预期工作。这意味着您可以使用my.com/path(显示与此匹配的请求)或-my.com/path(显示与此不匹配的请求)过滤请求路径。

    在我的 PR 修复将其投入生产后,该正则表达式解决方案也有效。这意味着您还可以使用/my.com.path//^((?!my.com/path).)*$/ 进行过滤,这将达到相同的结果。

我在这里留下了旧答案以供参考,它还解释了否定查找解决方案。


预定义的否定过滤器确实有效,但它目前不允许您对 Chrome 稳定版中的名称执行 NOT 过滤器,只有 CONTAINS。这是已在 Chrome Canary 中修复的 bug。

将更改推送到 Chrome 稳定版后,您应该可以使用 loadMess 仅过滤该名称,并使用 -loadMess 过滤掉该名称并保留其余部分,就像以前一样。

解决方法:匹配不包含字符串的字符串的正则表达式

^((?!YOUR_STRING).)*$

示例:

^((?!loadMess).)*$

说明:

^ - 字符串开始

(?!loadMess) - 负前瞻(在此光标处,不匹配下一位,不捕获)

. - 匹配任何字符(换行符除外)

()* - 0 个或多个前一组

$ - 字符串结束

更新(2016 年):

我发现 DevTools 如何处理网络面板中的正则表达式实际上存在一个错误。这意味着上面的解决方法不起作用,尽管它是有效的。

网络面板过滤名称和路径(从源代码中发现),但它执行两个 OR'ed 测试。在上述情况下,如果名称中有 loadMess,但路径中没有(例如,不是域或目录),则两者都将匹配。澄清一下,true || false === true,这意味着它只会过滤掉loadMess,如果它同时在名称和路径中找到。

我在 Chromium 中创建了一个问题,随后推送了一个 fix 以供审核。这后来是merged。

【讨论】:

真正完整的解释,但它不起作用......这里有一个例子:s31.postimg.org/53odofq23/Schermata_del_2016_07_22_15_17_59.png。我有 Chrome 版本 52.0.2743.82(64 位) @suikoy 我在过去的一个小时里尝试了一切,但不明白为什么会失败。我在 javascript 中进行了测试,它对我来说很好用。 DevTools 中使用的 Regex 解析器可能存在一些问题。我会继续调查这个。与此同时,我想只使用 Chrome Canary。 @suikoy 我在源代码中发现了问题!我会考虑修复它。如果我设法进行设置并提出拉取请求,那将是非常酷的。我会及时通知你的! @HussienK 已在54.0.2832.2 中修复。 编辑:负前瞻不起作用,-stringToAvoid 似乎起作用,我将使用它【参考方案2】:

此处已回答 - 适用于最新的 Chrome 58.0.3029.110(官方版本)(64 位) https://***.com/a/27770139/4772631

例如:如果我想排除所有 gif,只需输入 -gif

【讨论】:

截至 2019 年 7 月,这对我来说适用于简单的字符串【参考方案3】:

在任何地方都建议使用负前瞻,但它不起作用。

相反,“-myregex”确实对我有用。像这样:-/(Violation|HMR)/

【讨论】:

这可能是目前唯一正确的答案。【参考方案4】:

Chrome broswer dev tools 对正则过滤器的支持不是很好。 当我想隐藏一些请求时,它不起作用,如上所示。但是你可以使用-hide1-hide2来隐藏你想要的请求。 就在条件之间留一个空格,这和正则表达式不匹配,我猜原则上可能使用正则表达式以外的字符串匹配

【讨论】:

【参考方案5】:

过滤多个不同的网址

您可以否定符号来过滤网络调用。 例如:-lab.com 将过滤 lab.com 网址。

但要过滤多个网址,您可以使用 |正则表达式中的符号 例如:-/lab.com|mini.com/ 这将过滤 lab.com 和 mini.com,您也可以使用它来过滤许多不同的网站或 url。

【讨论】:

【参考方案6】:

在最新的 chrome 版本 (62) 上,您必须使用:

-mime-type:image/gif

【讨论】:

以上是关于Chrome 开发工具:有啥方法可以排除 URL 与正则表达式匹配的请求?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以保存 CSS 差异而不是在 Chrome 开发工具中保存整个样式表?

有啥方法可以保存 CSS 差异而不是在 Chrome 开发工具中保存整个样式表?

有啥方法可以扩展 chrome 的 __commandLineAPI

有啥方法可以访问 chrome for android 中的磁力计输入吗?

有啥方法可以将数据从一个浏览器传递到另一个浏览器,比如 chrome 到 firefox

有啥方法或脚本只能在 Chrome 浏览器中打开我的网站,而不是在任何其他浏览器中打开? [复制]